From 898f8e66c16ec278e3564af77ab4dc0f557843fc Mon Sep 17 00:00:00 2001 From: John Preston <johnprestonmail@gmail.com> Date: Sat, 25 Oct 2014 13:25:18 +0400 Subject: [PATCH] fixed debug logs in os x crashes --- Telegram/SourceFiles/dialogswidget.cpp | 2 +- Telegram/SourceFiles/mtproto/generate.py | 86 +- .../SourceFiles/mtproto/mtpConnection.cpp | 10 +- Telegram/SourceFiles/mtproto/mtpCoreTypes.cpp | 32 +- Telegram/SourceFiles/mtproto/mtpCoreTypes.h | 34 +- Telegram/SourceFiles/mtproto/mtpScheme.cpp | 8501 ++++++++++------- Telegram/SourceFiles/settings.h | 4 +- 7 files changed, 5251 insertions(+), 3418 deletions(-) diff --git a/Telegram/SourceFiles/dialogswidget.cpp b/Telegram/SourceFiles/dialogswidget.cpp index 89f8211eb..3d36ff12c 100644 --- a/Telegram/SourceFiles/dialogswidget.cpp +++ b/Telegram/SourceFiles/dialogswidget.cpp @@ -164,7 +164,7 @@ void DialogsListWidget::peopleResultPaint(UserData *user, QPainter &p, int32 w, p.setPen(st::dlgSystemColor->p); p.drawText(tr.left(), tr.top() + st::dlgHistFont->ascent, first); p.setPen(st::dlgTextColor->p); - p.drawText(tr.left() + w, tr.top() + st::dlgHistFont->ascent, second); + p.drawText(tr.left() + w, tr.top() + st::dlgHistFont->ascent, st::dlgHistFont->m.elidedText(second, Qt::ElideRight, tr.width() - w)); } } else { p.setPen((act ? st::dlgActiveColor : st::dlgSystemColor)->p); diff --git a/Telegram/SourceFiles/mtproto/generate.py b/Telegram/SourceFiles/mtproto/generate.py index 3e3845fc9..c8b5470c9 100644 --- a/Telegram/SourceFiles/mtproto/generate.py +++ b/Telegram/SourceFiles/mtproto/generate.py @@ -255,21 +255,25 @@ def addTextSerialize(dct): if len(result): result += '\n'; - result += '\t\tcase mtpc_' + name + ':\n'; - result += '\t\t\tto.add("{ ' + name + '");\n'; + result += '\t\t\tcase mtpc_' + name + ':\n'; if (len(prms)): - result += '\t\t\tto.add("\\n").add(add);\n'; + result += '\t\t\t\tif (stage) {\n'; + result += '\t\t\t\t\tto.add(",\\n").addSpaces(lev);\n'; + result += '\t\t\t\t} else {\n'; + result += '\t\t\t\t\tto.add("{ ' + name + '");\n'; + result += '\t\t\t\t\tto.add("\\n").addSpaces(lev);\n'; + result += '\t\t\t\t}\n'; + result += '\t\t\t\tswitch (stage) {\n'; + stage = 0; for k in prmsList: v = prms[k]; - result += '\t\t\tto.add(" ' + k + ': "); mtpTextSerializeType(to, from, end'; + result += '\t\t\t\tcase ' + str(stage) + ': to.add(" ' + k + ': "); ++stages.back(); types.push_back('; vtypeget = re.match(r'^[Vv]ector<MTP([A-Za-z0-9\._]+)>', v); if (vtypeget): if (not re.match(r'^[A-Z]', v)): - result += ', mtpc_vector'; + result += 'mtpc_vector'; else: - result += ', 0'; - result += ', level + 1'; - + result += '0'; restype = vtypeget.group(1); try: if boxed[restype]: @@ -291,18 +295,26 @@ def addTextSerialize(dct): if (len(conses) > 1): print('Complex bare type found: "' + restype + '" trying to serialize "' + k + '" of type "' + v + '"'); continue; - result += ', mtpc_' + conses[0][0]; + if (vtypeget): + result += '); vtypes.push_back('; + result += 'mtpc_' + conses[0][0]; + if (not vtypeget): + result += '); vtypes.push_back(0'; except KeyError: - result += ', mtpc_' + restype; - if (not vtypeget): - result += ', level + 1'; + if (vtypeget): + result += '); vtypes.push_back('; + result += 'mtpc_' + restype; + if (not vtypeget): + result += '); vtypes.push_back(0'; else: - if (not vtypeget): - result += ', 0, level + 1'; - result += '); to.add(",\\n").add(add);\n'; + result += '0); vtypes.push_back(0'; + result += '); stages.push_back(0); break;\n'; + stage = stage + 1; + result += '\t\t\t\tdefault: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break;\n'; + result += '\t\t\t\t}\n'; else: - result += '\t\t\tto.add(" ");\n'; - result += '\t\t\tto.add("}");\n\t\tbreak;\n'; + result += '\t\t\t\tto.add("{ ' + name + ' }"); types.pop_back(); vtypes.pop_back(); stages.pop_back();\n'; + result += '\t\t\tbreak;\n'; return result; textSerialize += addTextSerialize(typesDict) + '\n'; @@ -573,23 +585,39 @@ for restype in typesList: typesText += 'typedef MTPBoxed<MTP' + restype + '> MTP' + resType + ';\n'; # boxed type definition textSerializeFull = '\nvoid mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpPrime *end, mtpPrime cons, uint32 level, mtpPrime vcons) {\n'; -textSerializeFull += '\tQString add = QString(" ").repeated(level * 2);\n\n'; +textSerializeFull += '\tQVector<mtpTypeId> types, vtypes;\n'; +textSerializeFull += '\tQVector<int32> stages;\n'; +textSerializeFull += '\ttypes.reserve(20); vtypes.reserve(20); stages.reserve(20);\n'; +textSerializeFull += '\ttypes.push_back(mtpTypeId(cons)); vtypes.push_back(mtpTypeId(vcons)); stages.push_back(0);\n\n'; textSerializeFull += '\tconst mtpPrime *start = from;\n'; +textSerializeFull += '\tmtpTypeId type = cons, vtype = vcons;\n'; +textSerializeFull += '\tint32 stage = 0;\n'; textSerializeFull += '\ttry {\n'; -textSerializeFull += '\t\tif (!cons) {\n'; -textSerializeFull += '\t\t\tif (from >= end) {\n'; -textSerializeFull += '\t\t\t\tthrow Exception("from >= 2");\n'; +textSerializeFull += '\t\twhile (!types.isEmpty()) {\n'; +textSerializeFull += '\t\t\ttype = types.back();\n'; +textSerializeFull += '\t\t\tvtype = vtypes.back();\n'; +textSerializeFull += '\t\t\tstage = stages.back();\n'; +textSerializeFull += '\t\t\tif (!type) {\n'; +textSerializeFull += '\t\t\t\tif (from >= end) {\n'; +textSerializeFull += '\t\t\t\t\tthrow Exception("from >= end");\n'; +textSerializeFull += '\t\t\t\t} else if (stage) {\n'; +textSerializeFull += '\t\t\t\t\tthrow Exception("unknown type on stage > 0");\n'; +textSerializeFull += '\t\t\t\t}\n'; +textSerializeFull += '\t\t\t\ttypes.back() = type = *from;\n'; +textSerializeFull += '\t\t\t\tstart = ++from;\n'; +textSerializeFull += '\t\t\t}\n\n'; +textSerializeFull += '\t\t\tint32 lev = level + types.size() - 1;\n'; +textSerializeFull += '\t\t\tswitch (type) {\n' + textSerialize + '\n'; +textSerializeFull += '\t\t\tdefault:\n'; +textSerializeFull += '\t\t\t\tmtpTextSerializeCore(to, from, end, type, lev, vtype);\n'; +textSerializeFull += '\t\t\t\ttypes.pop_back(); vtypes.pop_back(); stages.pop_back();\n'; +textSerializeFull += '\t\t\tbreak;\n'; textSerializeFull += '\t\t\t}\n'; -textSerializeFull += '\t\t\tcons = *from;\n'; -textSerializeFull += '\t\t\t++from;\n'; -textSerializeFull += '\t\t\t++start;\n'; -textSerializeFull += '\t\t}\n\n'; -textSerializeFull += '\t\tswitch (mtpTypeId(cons)) {\n' + textSerialize; -textSerializeFull += '\n\n\t\tdefault:\n\t\t\tmtpTextSerializeCore(to, from, end, cons, level, vcons);\n\t\tbreak;\n\t\t}\n\n'; +textSerializeFull += '\t\t}\n'; textSerializeFull += '\t} catch (Exception &e) {\n'; textSerializeFull += '\t\tto.add("[ERROR] ");\n'; -textSerializeFull += '\t\tto.add("(").add(e.what()).add("), cons: 0x").add(mtpWrapNumber(cons, 16));\n'; -textSerializeFull += '\t\tif (vcons) to.add(", vcons: 0x").add(mtpWrapNumber(vcons));\n'; +textSerializeFull += '\t\tto.add("(").add(e.what()).add("), cons: 0x").add(mtpWrapNumber(type, 16));\n'; +textSerializeFull += '\t\tif (vtype) to.add(", vcons: 0x").add(mtpWrapNumber(vtype));\n'; textSerializeFull += '\t\tto.add(", ").add(mb(start, (end - start) * sizeof(mtpPrime)).str());\n'; textSerializeFull += '\t}\n'; textSerializeFull += '}\n'; diff --git a/Telegram/SourceFiles/mtproto/mtpConnection.cpp b/Telegram/SourceFiles/mtproto/mtpConnection.cpp index 82dd34816..f84c4ffe3 100644 --- a/Telegram/SourceFiles/mtproto/mtpConnection.cpp +++ b/Telegram/SourceFiles/mtproto/mtpConnection.cpp @@ -334,7 +334,7 @@ QString MTProtoConnection::transport() const { namespace { mtpBuffer _handleHttpResponse(QNetworkReply *reply) { QByteArray response = reply->readAll(); - TCP_LOG(("HTTP Info: read %1 bytes %2").arg(response.size()).arg(mb(response.constData(), response.size()).str())); + TCP_LOG(("HTTP Info: read %1 bytes").arg(response.size())); if (response.isEmpty()) return mtpBuffer(); @@ -544,7 +544,7 @@ void MTPabstractTcpConnection::socketRead() { } int32 bytes = (int32)sock.read(readTo, toRead); if (bytes > 0) { - TCP_LOG(("TCP Info: read %1 bytes %2").arg(bytes).arg(mb(readTo, bytes).str())); + TCP_LOG(("TCP Info: read %1 bytes").arg(bytes)); packetRead += bytes; currentPos += bytes; @@ -676,7 +676,7 @@ void MTPautoConnection::tcpSend(mtpBuffer &buffer) { buffer[0] = len; buffer[1] = packetNum++; buffer[size - 1] = hashCrc32(&buffer[0], len - 4); - TCP_LOG(("TCP Info: write %1 packet %2 bytes %3").arg(packetNum).arg(len).arg(mb(&buffer[0], len).str())); + TCP_LOG(("TCP Info: write %1 packet %2 bytes").arg(packetNum).arg(len)); sock.write((const char*)&buffer[0], len); } @@ -688,7 +688,7 @@ void MTPautoConnection::httpSend(mtpBuffer &buffer) { request.setHeader(QNetworkRequest::ContentLengthHeader, QVariant(requestSize)); request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant(qsl("application/x-www-form-urlencoded"))); - TCP_LOG(("HTTP Info: sending %1 len request %2").arg(requestSize).arg(mb(&buffer[2], requestSize).str())); + TCP_LOG(("HTTP Info: sending %1 len request").arg(requestSize)); requests.insert(manager.post(request, QByteArray((const char*)(&buffer[2]), requestSize))); } @@ -1702,7 +1702,7 @@ void MTProtoConnectionPrivate::handleReceived() { conn->received().pop_front(); return restart(); } - TCP_LOG(("TCP Info: decrypted message %1,%2,%3 is %4").arg(msgId).arg(seqNo).arg(logBool(needAck)).arg(mb(data, msgLen + 8 * sizeof(mtpPrime)).str())); + TCP_LOG(("TCP Info: decrypted message %1,%2,%3 is %4 len").arg(msgId).arg(seqNo).arg(logBool(needAck)).arg(msgLen + 8 * sizeof(mtpPrime))); uint64 serverSession = sessionData->getSession(); if (session != serverSession) { diff --git a/Telegram/SourceFiles/mtproto/mtpCoreTypes.cpp b/Telegram/SourceFiles/mtproto/mtpCoreTypes.cpp index e079cc800..0cd8b8242 100644 --- a/Telegram/SourceFiles/mtproto/mtpCoreTypes.cpp +++ b/Telegram/SourceFiles/mtproto/mtpCoreTypes.cpp @@ -25,8 +25,6 @@ QString mtpWrapNumber(float64 number) { } void mtpTextSerializeCore(MTPStringLogger &to, const mtpPrime *&from, const mtpPrime *end, mtpTypeId cons, uint32 level, mtpPrime vcons) { - QString add = QString(" ").repeated(level * 2); - switch (mtpTypeId(cons)) { case mtpc_int: { MTPint value(from, end, cons); @@ -77,11 +75,11 @@ void mtpTextSerializeCore(MTPStringLogger &to, const mtpPrime *&from, const mtpP int32 cnt = *(from++); to.add("[ vector<0x").add(mtpWrapNumber(vcons, 16)).add(">"); if (cnt) { - to.add("\n").add(add); + to.add("\n").addSpaces(level); for (int32 i = 0; i < cnt; ++i) { to.add(" "); mtpTextSerializeType(to, from, end, vcons, level + 1); - to.add(",\n").add(add); + to.add(",\n").addSpaces(level); } } else { to.add(" "); @@ -91,9 +89,9 @@ void mtpTextSerializeCore(MTPStringLogger &to, const mtpPrime *&from, const mtpP case mtpc_error: { to.add("{ error"); - to.add("\n").add(add); - to.add(" code: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" text: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); + to.add("\n").addSpaces(level); + to.add(" code: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").addSpaces(level); + to.add(" text: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").addSpaces(level); to.add("}"); } break; @@ -105,26 +103,26 @@ void mtpTextSerializeCore(MTPStringLogger &to, const mtpPrime *&from, const mtpP case mtpc_rpc_result: { to.add("{ rpc_result"); - to.add("\n").add(add); - to.add(" req_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" result: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("\n").addSpaces(level); + to.add(" req_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").addSpaces(level); + to.add(" result: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").addSpaces(level); to.add("}"); } break; case mtpc_msg_container: { to.add("{ msg_container"); - to.add("\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, mtpc_vector, level + 1, mtpc_core_message); to.add(",\n").add(add); + to.add("\n").addSpaces(level); + to.add(" messages: "); mtpTextSerializeType(to, from, end, mtpc_vector, level + 1, mtpc_core_message); to.add(",\n").addSpaces(level); to.add("}"); } break; case mtpc_core_message: { to.add("{ core_message"); - to.add("\n").add(add); - to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" seq_no: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" body: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); + to.add("\n").addSpaces(level); + to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").addSpaces(level); + to.add(" seq_no: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").addSpaces(level); + to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").addSpaces(level); + to.add(" body: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").addSpaces(level); to.add("}"); } break; diff --git a/Telegram/SourceFiles/mtproto/mtpCoreTypes.h b/Telegram/SourceFiles/mtproto/mtpCoreTypes.h index 9b86ae515..973bc6cfa 100644 --- a/Telegram/SourceFiles/mtproto/mtpCoreTypes.h +++ b/Telegram/SourceFiles/mtproto/mtpCoreTypes.h @@ -1026,19 +1026,35 @@ struct MTPStringLogger { if (len < 0) len = strlen(data); if (!len) return (*this); - if (size + len > alloced) { - int32 newsize = size + len; - if (newsize % MTPDebugBufferSize) newsize += MTPDebugBufferSize - (newsize % MTPDebugBufferSize); - char *b = new char[newsize]; - memcpy(b, p, size); - alloced = newsize; - delete p; - p = b; - } + ensureLength(len); memcpy(p + size, data, len); size += len; return (*this); } + + MTPStringLogger &addSpaces(int32 level) { + int32 len = level * 2; + if (!len) return (*this); + + ensureLength(len); + for (char *ptr = p + size, *end = ptr + len; ptr != end; ++ptr) { + *ptr = ' '; + } + size += len; + return (*this); + } + + void ensureLength(int32 add) { + if (size + add <= alloced) return; + + int32 newsize = size + add; + if (newsize % MTPDebugBufferSize) newsize += MTPDebugBufferSize - (newsize % MTPDebugBufferSize); + char *b = new char[newsize]; + memcpy(b, p, size); + alloced = newsize; + delete p; + p = b; + } char *p; int32 size, alloced; }; diff --git a/Telegram/SourceFiles/mtproto/mtpScheme.cpp b/Telegram/SourceFiles/mtproto/mtpScheme.cpp index a0eaad1bc..d2f2e386e 100644 --- a/Telegram/SourceFiles/mtproto/mtpScheme.cpp +++ b/Telegram/SourceFiles/mtproto/mtpScheme.cpp @@ -26,3368 +26,5159 @@ Copyright (c) 2014 John Preston, https://tdesktop.com void mtpTextSerializeType(MTPStringLogger &to, const mtpPrime *&from, const mtpPrime *end, mtpPrime cons, uint32 level, mtpPrime vcons) { - QString add = QString(" ").repeated(level * 2); + QVector<mtpTypeId> types, vtypes; + QVector<int32> stages; + types.reserve(20); vtypes.reserve(20); stages.reserve(20); + types.push_back(mtpTypeId(cons)); vtypes.push_back(mtpTypeId(vcons)); stages.push_back(0); const mtpPrime *start = from; + mtpTypeId type = cons, vtype = vcons; + int32 stage = 0; try { - if (!cons) { - if (from >= end) { - throw Exception("from >= 2"); + while (!types.isEmpty()) { + type = types.back(); + vtype = vtypes.back(); + stage = stages.back(); + if (!type) { + if (from >= end) { + throw Exception("from >= end"); + } else if (stage) { + throw Exception("unknown type on stage > 0"); + } + types.back() = type = *from; + start = ++from; + } + + int32 lev = level + types.size() - 1; + switch (type) { + case mtpc_userProfilePhotoEmpty: + to.add("{ userProfilePhotoEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_userProfilePhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ userProfilePhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" photo_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" photo_small: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" photo_big: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_rpc_error: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ rpc_error"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" error_code: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" error_message: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_dh_gen_ok: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ dh_gen_ok"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" server_nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" new_nonce_hash1: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_dh_gen_retry: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ dh_gen_retry"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" server_nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" new_nonce_hash2: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_dh_gen_fail: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ dh_gen_fail"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" server_nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" new_nonce_hash3: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputPeerEmpty: + to.add("{ inputPeerEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputPeerSelf: + to.add("{ inputPeerSelf }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputPeerContact: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputPeerContact"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputPeerForeign: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputPeerForeign"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputPeerChat: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputPeerChat"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_photoEmpty: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ photoEmpty"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_photo: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ photo"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" caption: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" geo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" sizes: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_p_q_inner_data: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ p_q_inner_data"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" pq: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" p: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" q: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" server_nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" new_nonce: "); ++stages.back(); types.push_back(mtpc_int256); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_client_DH_inner_data: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ client_DH_inner_data"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" server_nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" retry_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" g_b: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_link: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_link"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" my_link: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" foreign_link: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" user: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputPhotoCropAuto: + to.add("{ inputPhotoCropAuto }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputPhotoCrop: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputPhotoCrop"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" crop_left: "); ++stages.back(); types.push_back(mtpc_double); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" crop_top: "); ++stages.back(); types.push_back(mtpc_double); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" crop_width: "); ++stages.back(); types.push_back(mtpc_double); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputFile: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputFile"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" parts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" md5_checksum: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputFileBig: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputFileBig"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" parts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageActionEmpty: + to.add("{ messageActionEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_messageActionChatCreate: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageActionChatCreate"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" title: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" users: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_int); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageActionChatEditTitle: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageActionChatEditTitle"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" title: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageActionChatEditPhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageActionChatEditPhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageActionChatDeletePhoto: + to.add("{ messageActionChatDeletePhoto }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_messageActionChatAddUser: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageActionChatAddUser"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageActionChatDeleteUser: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageActionChatDeleteUser"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageActionGeoChatCreate: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageActionGeoChatCreate"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" title: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" address: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageActionGeoChatCheckin: + to.add("{ messageActionGeoChatCheckin }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputMessagesFilterEmpty: + to.add("{ inputMessagesFilterEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputMessagesFilterPhotos: + to.add("{ inputMessagesFilterPhotos }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputMessagesFilterVideo: + to.add("{ inputMessagesFilterVideo }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputMessagesFilterPhotoVideo: + to.add("{ inputMessagesFilterPhotoVideo }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputMessagesFilterDocument: + to.add("{ inputMessagesFilterDocument }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputMessagesFilterAudio: + to.add("{ inputMessagesFilterAudio }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_help_support: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ help_support"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" phone_number: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" user: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contactFound: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contactFound"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_future_salts: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ future_salts"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" req_msg_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" now: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" salts: "); ++stages.back(); types.push_back(mtpc_vector); vtypes.push_back(mtpc_future_salt); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputPhotoEmpty: + to.add("{ inputPhotoEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputPhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputPhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_chatParticipant: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ chatParticipant"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" inviter_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_exportedAuthorization: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_exportedAuthorization"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" bytes: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contactStatus: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contactStatus"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" expires: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_new_session_created: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ new_session_created"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" first_msg_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" unique_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" server_salt: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_located: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_located"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" results: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" messages: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updatesTooLong: + to.add("{ updatesTooLong }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_updateShortMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateShortMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" from_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" message: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateShortChatMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateShortChatMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" from_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" message: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateShort: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateShort"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" update: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updatesCombined: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updatesCombined"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" updates: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" seq_start: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updates: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updates"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" updates: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_future_salt: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ future_salt"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" valid_since: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" valid_until: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" salt: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_server_DH_inner_data: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ server_DH_inner_data"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" server_nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" g: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" dh_prime: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" g_a: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" server_time: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_resPQ: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ resPQ"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" server_nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" pq: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" server_public_key_fingerprints: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_long); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_upload_file: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ upload_file"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" type: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" mtime: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" bytes: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputMediaEmpty: + to.add("{ inputMediaEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputMediaUploadedPhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputMediaUploadedPhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" file: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputMediaPhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputMediaPhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputMediaGeoPoint: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputMediaGeoPoint"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" geo_point: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputMediaContact: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputMediaContact"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" phone_number: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" first_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" last_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputMediaUploadedVideo: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputMediaUploadedVideo"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" file: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" duration: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" w: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" h: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" mime_type: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputMediaUploadedThumbVideo: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputMediaUploadedThumbVideo"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" file: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" thumb: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" duration: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" w: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" h: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" mime_type: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputMediaVideo: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputMediaVideo"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputMediaUploadedAudio: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputMediaUploadedAudio"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" file: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" duration: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" mime_type: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputMediaAudio: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputMediaAudio"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputMediaUploadedDocument: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputMediaUploadedDocument"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" file: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" file_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" mime_type: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputMediaUploadedThumbDocument: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputMediaUploadedThumbDocument"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" file: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" thumb: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" file_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" mime_type: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputMediaDocument: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputMediaDocument"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_documentEmpty: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ documentEmpty"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_document: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ document"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" file_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" mime_type: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" size: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 7: to.add(" thumb: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 8: to.add(" dc_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputEncryptedFileEmpty: + to.add("{ inputEncryptedFileEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputEncryptedFileUploaded: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputEncryptedFileUploaded"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" parts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" md5_checksum: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" key_fingerprint: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputEncryptedFile: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputEncryptedFile"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputEncryptedFileBigUploaded: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputEncryptedFileBigUploaded"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" parts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" key_fingerprint: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_found: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_found"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" results: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputFileLocation: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputFileLocation"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" volume_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" local_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" secret: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputVideoFileLocation: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputVideoFileLocation"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputEncryptedFileLocation: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputEncryptedFileLocation"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputAudioFileLocation: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputAudioFileLocation"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputDocumentFileLocation: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputDocumentFileLocation"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_chatFull: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ chatFull"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" participants: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" chat_photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" notify_settings: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_chatParticipantsForbidden: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ chatParticipantsForbidden"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_chatParticipants: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ chatParticipants"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" admin_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" participants: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" version: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_msgs_ack: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ msgs_ack"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" msg_ids: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_long); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_userFull: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ userFull"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" link: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" profile_photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" notify_settings: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" blocked: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" real_first_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" real_last_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_videoEmpty: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ videoEmpty"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_video: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ video"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" caption: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" duration: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" mime_type: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 7: to.add(" size: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 8: to.add(" thumb: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 9: to.add(" dc_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 10: to.add(" w: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 11: to.add(" h: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageEmpty: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageEmpty"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_message: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ message"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" flags: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" from_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" to_id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" message: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" media: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageForwarded: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageForwarded"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" flags: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" fwd_from_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" fwd_date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" from_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" to_id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 7: to.add(" message: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 8: to.add(" media: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageService: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageService"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" flags: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" from_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" to_id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" action: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_notifyPeer: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ notifyPeer"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_notifyUsers: + to.add("{ notifyUsers }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_notifyChats: + to.add("{ notifyChats }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_notifyAll: + to.add("{ notifyAll }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_messages_messageEmpty: + to.add("{ messages_messageEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_messages_message: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_message"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" message: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputPhoneContact: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputPhoneContact"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" client_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" phone: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" first_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" last_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_rpc_answer_unknown: + to.add("{ rpc_answer_unknown }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_rpc_answer_dropped_running: + to.add("{ rpc_answer_dropped_running }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_rpc_answer_dropped: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ rpc_answer_dropped"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" msg_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" seq_no: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" bytes: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputVideoEmpty: + to.add("{ inputVideoEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputVideo: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputVideo"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geoChatMessageEmpty: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geoChatMessageEmpty"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geoChatMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geoChatMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" from_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" message: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" media: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geoChatMessageService: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geoChatMessageService"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" from_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" action: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geoPointEmpty: + to.add("{ geoPointEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_geoPoint: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geoPoint"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" long: "); ++stages.back(); types.push_back(mtpc_double); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" lat: "); ++stages.back(); types.push_back(mtpc_double); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_dialogs: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_dialogs"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" dialogs: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" messages: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_dialogsSlice: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_dialogsSlice"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" count: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" dialogs: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" messages: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_dhConfigNotModified: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_dhConfigNotModified"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" random: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_dhConfig: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_dhConfig"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" g: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" p: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" version: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" random: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_peerUser: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ peerUser"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_peerChat: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ peerChat"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_server_DH_params_fail: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ server_DH_params_fail"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" server_nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" new_nonce_hash: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_server_DH_params_ok: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ server_DH_params_ok"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" server_nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" encrypted_answer: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputAppEvent: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputAppEvent"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" time: "); ++stages.back(); types.push_back(mtpc_double); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" type: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" peer: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" data: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_photos_photo: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ photos_photo"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_peerNotifyEventsEmpty: + to.add("{ peerNotifyEventsEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_peerNotifyEventsAll: + to.add("{ peerNotifyEventsAll }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_nearestDc: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ nearestDc"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" country: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" this_dc: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" nearest_dc: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_wallPaper: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ wallPaper"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" title: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" sizes: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" color: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_wallPaperSolid: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ wallPaperSolid"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" title: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" bg_color: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" color: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_messages: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_messages"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" messages: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_messagesSlice: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_messagesSlice"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" count: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" messages: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_blocked: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_blocked"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" blocked: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_blockedSlice: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_blockedSlice"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" count: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" blocked: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_statedMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_statedMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" message: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_statedMessageLink: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_statedMessageLink"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" message: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" links: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageMediaEmpty: + to.add("{ messageMediaEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_messageMediaPhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageMediaPhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageMediaVideo: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageMediaVideo"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" video: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageMediaGeo: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageMediaGeo"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" geo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageMediaContact: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageMediaContact"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" phone_number: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" first_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" last_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageMediaUnsupported: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageMediaUnsupported"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" bytes: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageMediaDocument: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageMediaDocument"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" document: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messageMediaAudio: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messageMediaAudio"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" audio: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputGeoChat: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputGeoChat"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_help_appUpdate: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ help_appUpdate"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" critical: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" url: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" text: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_help_noAppUpdate: + to.add("{ help_noAppUpdate }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_updates_differenceEmpty: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updates_differenceEmpty"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updates_difference: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updates_difference"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" new_messages: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" new_encrypted_messages: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" other_updates: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" state: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updates_differenceSlice: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updates_differenceSlice"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" new_messages: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" new_encrypted_messages: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" other_updates: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" intermediate_state: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_msgs_state_info: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ msgs_state_info"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" req_msg_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" info: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_msgs_state_req: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ msgs_state_req"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" msg_ids: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_long); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_msg_resend_req: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ msg_resend_req"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" msg_ids: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_long); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputDocumentEmpty: + to.add("{ inputDocumentEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputDocument: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputDocument"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_userStatusEmpty: + to.add("{ userStatusEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_userStatusOnline: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ userStatusOnline"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" expires: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_userStatusOffline: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ userStatusOffline"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" was_online: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_photos_photos: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ photos_photos"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" photos: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_photos_photosSlice: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ photos_photosSlice"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" count: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" photos: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_importedContacts: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_importedContacts"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" imported: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" retry_contacts: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_long); stages.push_back(0); break; + case 2: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_sendMessageTypingAction: + to.add("{ sendMessageTypingAction }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_sendMessageCancelAction: + to.add("{ sendMessageCancelAction }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_sendMessageRecordVideoAction: + to.add("{ sendMessageRecordVideoAction }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_sendMessageUploadVideoAction: + to.add("{ sendMessageUploadVideoAction }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_sendMessageRecordAudioAction: + to.add("{ sendMessageRecordAudioAction }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_sendMessageUploadAudioAction: + to.add("{ sendMessageUploadAudioAction }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_sendMessageUploadPhotoAction: + to.add("{ sendMessageUploadPhotoAction }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_sendMessageUploadDocumentAction: + to.add("{ sendMessageUploadDocumentAction }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_sendMessageGeoLocationAction: + to.add("{ sendMessageGeoLocationAction }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_sendMessageChooseContactAction: + to.add("{ sendMessageChooseContactAction }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_fileLocationUnavailable: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ fileLocationUnavailable"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" volume_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" local_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" secret: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_fileLocation: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ fileLocation"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" dc_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" volume_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" local_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" secret: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_photoSizeEmpty: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ photoSizeEmpty"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" type: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_photoSize: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ photoSize"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" type: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" location: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" w: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" h: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" size: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_photoCachedSize: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ photoCachedSize"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" type: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" location: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" w: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" h: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" bytes: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_msg_detailed_info: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ msg_detailed_info"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" msg_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" answer_msg_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" bytes: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" status: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_msg_new_detailed_info: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ msg_new_detailed_info"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" answer_msg_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" bytes: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" status: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputChatPhotoEmpty: + to.add("{ inputChatPhotoEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputChatUploadedPhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputChatUploadedPhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" file: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" crop: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputChatPhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputChatPhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" crop: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_sentMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_sentMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_sentMessageLink: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_sentMessageLink"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" links: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_chatFull: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_chatFull"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" full_chat: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_statedMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_statedMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" message: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_chatPhotoEmpty: + to.add("{ chatPhotoEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_chatPhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ chatPhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" photo_small: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" photo_big: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_encryptedMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ encryptedMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" random_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" bytes: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" file: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_encryptedMessageService: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ encryptedMessageService"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" random_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" bytes: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_destroy_session_ok: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ destroy_session_ok"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" session_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_destroy_session_none: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ destroy_session_none"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" session_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_http_wait: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ http_wait"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" max_delay: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" wait_after: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" max_wait: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_sentEncryptedMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_sentEncryptedMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_sentEncryptedFile: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_sentEncryptedFile"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" file: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_myLinkEmpty: + to.add("{ contacts_myLinkEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_contacts_myLinkRequested: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_myLinkRequested"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" contact: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_myLinkContact: + to.add("{ contacts_myLinkContact }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputEncryptedChat: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputEncryptedChat"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_chats: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_chats"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_encryptedChatEmpty: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ encryptedChatEmpty"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_encryptedChatWaiting: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ encryptedChatWaiting"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" admin_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" participant_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_encryptedChatRequested: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ encryptedChatRequested"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" admin_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" participant_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" g_a: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_encryptedChat: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ encryptedChat"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" admin_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" participant_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" g_a_or_b: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" key_fingerprint: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_encryptedChatDiscarded: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ encryptedChatDiscarded"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_messages: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_messages"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" messages: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_messagesSlice: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_messagesSlice"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" count: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" messages: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_checkedPhone: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_checkedPhone"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" phone_registered: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" phone_invited: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contactSuggested: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contactSuggested"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" mutual_contacts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_foreignLinkUnknown: + to.add("{ contacts_foreignLinkUnknown }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_contacts_foreignLinkRequested: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_foreignLinkRequested"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" has_phone: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_foreignLinkMutual: + to.add("{ contacts_foreignLinkMutual }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputAudioEmpty: + to.add("{ inputAudioEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputAudio: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputAudio"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_contacts: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_contacts"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" contacts: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_contactsNotModified: + to.add("{ contacts_contactsNotModified }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_chatEmpty: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ chatEmpty"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_chat: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ chat"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" title: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" participants_count: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" left: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" version: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_chatForbidden: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ chatForbidden"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" title: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geoChat: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geoChat"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" title: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" address: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" venue: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" geo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 7: to.add(" participants_count: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 8: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 9: to.add(" checked_in: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 10: to.add(" version: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_pong: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ pong"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" msg_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" ping_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputPeerNotifyEventsEmpty: + to.add("{ inputPeerNotifyEventsEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputPeerNotifyEventsAll: + to.add("{ inputPeerNotifyEventsAll }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputPeerNotifySettings: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputPeerNotifySettings"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" mute_until: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" sound: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" show_previews: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" events_mask: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_affectedHistory: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_affectedHistory"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" offset: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputNotifyPeer: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputNotifyPeer"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputNotifyUsers: + to.add("{ inputNotifyUsers }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputNotifyChats: + to.add("{ inputNotifyChats }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputNotifyAll: + to.add("{ inputNotifyAll }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputNotifyGeoChatPeer: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputNotifyGeoChatPeer"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_bad_msg_notification: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ bad_msg_notification"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" bad_msg_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" bad_msg_seqno: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" error_code: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_bad_server_salt: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ bad_server_salt"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" bad_msg_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" bad_msg_seqno: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" error_code: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" new_server_salt: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_config: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ config"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" test_mode: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" this_dc: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" dc_options: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" chat_size_max: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" broadcast_size_max: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputGeoPointEmpty: + to.add("{ inputGeoPointEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputGeoPoint: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputGeoPoint"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" lat: "); ++stages.back(); types.push_back(mtpc_double); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" long: "); ++stages.back(); types.push_back(mtpc_double); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputUserEmpty: + to.add("{ inputUserEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputUserSelf: + to.add("{ inputUserSelf }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_inputUserContact: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputUserContact"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_inputUserForeign: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ inputUserForeign"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_dialog: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ dialog"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" top_message: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" unread_count: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" notify_settings: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_importedContact: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ importedContact"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" client_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_dcOption: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ dcOption"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" hostname: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" ip_address: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" port: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateNewMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateNewMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" message: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateMessageID: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateMessageID"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" random_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateReadMessages: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateReadMessages"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" messages: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_int); stages.push_back(0); break; + case 1: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateDeleteMessages: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateDeleteMessages"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" messages: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_int); stages.push_back(0); break; + case 1: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateRestoreMessages: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateRestoreMessages"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" messages: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_int); stages.push_back(0); break; + case 1: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateUserTyping: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateUserTyping"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" action: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateChatUserTyping: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateChatUserTyping"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" action: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateChatParticipants: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateChatParticipants"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" participants: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateUserStatus: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateUserStatus"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" status: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateUserName: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateUserName"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" first_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" last_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" username: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateUserPhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateUserPhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" previous: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateContactRegistered: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateContactRegistered"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateContactLink: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateContactLink"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" my_link: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" foreign_link: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateActivation: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateActivation"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateNewAuthorization: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateNewAuthorization"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" auth_key_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" device: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" location: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateNewGeoChatMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateNewGeoChatMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" message: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateNewEncryptedMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateNewEncryptedMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" message: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" qts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateEncryptedChatTyping: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateEncryptedChatTyping"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateEncryption: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateEncryption"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateEncryptedMessagesRead: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateEncryptedMessagesRead"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" max_date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateChatParticipantAdd: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateChatParticipantAdd"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" inviter_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" version: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateChatParticipantDelete: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateChatParticipantDelete"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" version: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateDcOptions: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateDcOptions"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" dc_options: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateUserBlocked: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateUserBlocked"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" blocked: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateNotifySettings: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateNotifySettings"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" notify_settings: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updateServiceNotification: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updateServiceNotification"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" type: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" message: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" media: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" popup: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_peerNotifySettingsEmpty: + to.add("{ peerNotifySettingsEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_peerNotifySettings: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ peerNotifySettings"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" mute_until: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" sound: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" show_previews: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" events_mask: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_userEmpty: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ userEmpty"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_userSelf: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ userSelf"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" first_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" last_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" username: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" phone: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" status: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 7: to.add(" inactive: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_userContact: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ userContact"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" first_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" last_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" username: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" phone: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 7: to.add(" status: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_userRequest: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ userRequest"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" first_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" last_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" username: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" phone: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 7: to.add(" status: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_userForeign: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ userForeign"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" first_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" last_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" username: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" status: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_userDeleted: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ userDeleted"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" first_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" last_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" username: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_suggested: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_suggested"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" results: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_authorization: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_authorization"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" expires: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" user: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_chat: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_chat"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_sentCode: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_sentCode"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" phone_registered: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" phone_code_hash: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" send_call_timeout: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" is_password: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_sentAppCode: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_sentAppCode"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" phone_registered: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" phone_code_hash: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" send_call_timeout: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" is_password: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_audioEmpty: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ audioEmpty"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_audio: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ audio"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" duration: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" mime_type: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" size: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 7: to.add(" dc_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_statedMessages: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_statedMessages"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" messages: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_statedMessagesLinks: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_statedMessagesLinks"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" messages: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" chats: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" links: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contactBlocked: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contactBlocked"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_storage_fileUnknown: + to.add("{ storage_fileUnknown }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_storage_fileJpeg: + to.add("{ storage_fileJpeg }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_storage_fileGif: + to.add("{ storage_fileGif }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_storage_filePng: + to.add("{ storage_filePng }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_storage_filePdf: + to.add("{ storage_filePdf }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_storage_fileMp3: + to.add("{ storage_fileMp3 }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_storage_fileMov: + to.add("{ storage_fileMov }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_storage_filePartial: + to.add("{ storage_filePartial }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_storage_fileMp4: + to.add("{ storage_fileMp4 }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_storage_fileWebp: + to.add("{ storage_fileWebp }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_help_inviteText: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ help_inviteText"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" message: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_chatLocated: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ chatLocated"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" distance: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contact: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contact"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" mutual: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updates_state: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updates_state"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" qts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" seq: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" unread_count: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_encryptedFileEmpty: + to.add("{ encryptedFileEmpty }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_encryptedFile: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ encryptedFile"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" access_hash: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" size: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" dc_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" key_fingerprint: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_msgs_all_info: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ msgs_all_info"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" msg_ids: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_long); stages.push_back(0); break; + case 1: to.add(" info: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_photos_updateProfilePhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ photos_updateProfilePhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" crop: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_getMessages: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_getMessages"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_int); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_getHistory: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_getHistory"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" offset: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" max_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" limit: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_search: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_search"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" q: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" filter: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" min_date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" max_date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" offset: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" max_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 7: to.add(" limit: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_set_client_DH_params: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ set_client_DH_params"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" server_nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" encrypted_data: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_getStatuses: + to.add("{ contacts_getStatuses }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_auth_checkPhone: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_checkPhone"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" phone_number: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_help_getAppUpdate: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ help_getAppUpdate"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" device_model: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" system_version: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" app_version: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" lang_code: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updates_getDifference: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ updates_getDifference"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" pts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" qts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_help_getInviteText: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ help_getInviteText"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" lang_code: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_users_getFullUser: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ users_getFullUser"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_updates_getState: + to.add("{ updates_getState }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_contacts_getContacts: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_getContacts"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" hash: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_checkin: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_checkin"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_editChatTitle: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_editChatTitle"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" title: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" address: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_editChatPhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_editChatPhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_sendMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_sendMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" message: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" random_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_sendMedia: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_sendMedia"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" media: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" random_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_createGeoChat: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_createGeoChat"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" title: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" geo_point: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" address: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" venue: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_ping: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ ping"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" ping_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_ping_delay_disconnect: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ ping_delay_disconnect"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" ping_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" disconnect_delay: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_help_getSupport: + to.add("{ help_getSupport }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_messages_readHistory: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_readHistory"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" max_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" offset: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" read_contents: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_deleteHistory: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_deleteHistory"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" offset: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_search: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_search"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" q: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" limit: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_exportCard: + to.add("{ contacts_exportCard }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_messages_deleteMessages: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_deleteMessages"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_int); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_restoreMessages: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_restoreMessages"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_int); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_receivedMessages: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_receivedMessages"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" max_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_readMessageContents: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_readMessageContents"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_int); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_users_getUsers: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ users_getUsers"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_get_future_salts: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ get_future_salts"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" num: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_photos_getUserPhotos: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ photos_getUserPhotos"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" offset: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" max_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" limit: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_register_saveDeveloperInfo: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ register_saveDeveloperInfo"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" email: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" phone_number: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" age: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" city: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_sendCall: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_sendCall"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" phone_number: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" phone_code_hash: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_logOut: + to.add("{ auth_logOut }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_auth_resetAuthorizations: + to.add("{ auth_resetAuthorizations }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_auth_sendInvites: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_sendInvites"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" phone_numbers: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_string); stages.push_back(0); break; + case 1: to.add(" message: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_bindTempAuthKey: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_bindTempAuthKey"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" perm_auth_key_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" nonce: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" expires_at: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" encrypted_message: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_account_registerDevice: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ account_registerDevice"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" token_type: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" token: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" device_model: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" system_version: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" app_version: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" app_sandbox: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" lang_code: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_account_unregisterDevice: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ account_unregisterDevice"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" token_type: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" token: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_account_updateNotifySettings: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ account_updateNotifySettings"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" settings: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_account_resetNotifySettings: + to.add("{ account_resetNotifySettings }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_account_updateStatus: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ account_updateStatus"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" offline: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_deleteContacts: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_deleteContacts"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_block: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_block"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_unblock: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_unblock"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_setTyping: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_setTyping"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" action: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_upload_saveFilePart: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ upload_saveFilePart"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" file_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" file_part: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" bytes: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_help_saveAppLog: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ help_saveAppLog"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" events: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_setTyping: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_setTyping"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" typing: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_discardEncryption: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_discardEncryption"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_setEncryptedTyping: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_setEncryptedTyping"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" typing: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_readEncryptedHistory: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_readEncryptedHistory"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" max_date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_upload_saveBigFilePart: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ upload_saveBigFilePart"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" file_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" file_part: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" file_total_parts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" bytes: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_sendSms: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_sendSms"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" phone_number: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" phone_code_hash: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_account_checkUsername: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ account_checkUsername"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" username: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_req_pq: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ req_pq"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_exportAuthorization: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_exportAuthorization"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" dc_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_importContacts: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_importContacts"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" contacts: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" replace: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_rpc_drop_answer: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ rpc_drop_answer"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" req_msg_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_help_getConfig: + to.add("{ help_getConfig }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_messages_getDialogs: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_getDialogs"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" offset: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" max_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" limit: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_account_getNotifySettings: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ account_getNotifySettings"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_getLocated: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_getLocated"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" geo_point: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" radius: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" limit: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_getDhConfig: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_getDhConfig"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" version: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" random_length: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_account_updateProfile: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ account_updateProfile"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" first_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" last_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_importCard: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_importCard"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" export_card: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_int); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_account_updateUsername: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ account_updateUsername"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" username: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_getFullChat: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_getFullChat"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_getFullChat: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_getFullChat"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_req_DH_params: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ req_DH_params"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" server_nonce: "); ++stages.back(); types.push_back(mtpc_int128); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" p: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" q: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" public_key_fingerprint: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" encrypted_data: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_getSuggested: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_getSuggested"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" limit: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_signUp: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_signUp"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" phone_number: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" phone_code_hash: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" phone_code: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" first_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" last_name: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_signIn: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_signIn"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" phone_number: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" phone_code_hash: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" phone_code: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_importAuthorization: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_importAuthorization"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" bytes: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_upload_getFile: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ upload_getFile"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" location: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" offset: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" limit: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_photos_uploadProfilePhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ photos_uploadProfilePhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" file: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" caption: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" geo_point: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" crop: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_auth_sendCode: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ auth_sendCode"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" phone_number: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" sms_type: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" api_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" api_hash: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" lang_code: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_forwardMessages: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_forwardMessages"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_int); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_sendBroadcast: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_sendBroadcast"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" contacts: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" message: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" media: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_receivedQueue: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_receivedQueue"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" max_qts: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_help_getNearestDc: + to.add("{ help_getNearestDc }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_messages_sendMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_sendMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" message: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" random_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_getRecents: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_getRecents"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" offset: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" limit: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_search: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_search"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" q: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" filter: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" min_date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" max_date: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" offset: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 6: to.add(" max_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 7: to.add(" limit: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_geochats_getHistory: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ geochats_getHistory"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" offset: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" max_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" limit: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_destroy_session: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ destroy_session"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" session_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_account_getWallPapers: + to.add("{ account_getWallPapers }"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; + + case mtpc_messages_sendEncrypted: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_sendEncrypted"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" random_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" data: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_sendEncryptedFile: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_sendEncryptedFile"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" random_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" data: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" file: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_sendEncryptedService: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_sendEncryptedService"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" random_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" data: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_getBlocked: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_getBlocked"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" offset: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" limit: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_contacts_deleteContact: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ contacts_deleteContact"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_invokeAfterMsg: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ invokeAfterMsg"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" msg_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" query: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_invokeAfterMsgs: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ invokeAfterMsgs"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" msg_ids: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_long); stages.push_back(0); break; + case 1: to.add(" query: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_initConnection: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ initConnection"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" api_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" device_model: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" system_version: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 3: to.add(" app_version: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 4: to.add(" lang_code: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + case 5: to.add(" query: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_getChats: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_getChats"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" id: "); ++stages.back(); types.push_back(0); vtypes.push_back(mtpc_int); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_sendMedia: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_sendMedia"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" media: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" random_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_editChatTitle: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_editChatTitle"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" title: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_editChatPhoto: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_editChatPhoto"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" photo: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_addChatUser: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_addChatUser"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" user_id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" fwd_limit: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_deleteChatUser: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_deleteChatUser"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" chat_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" user_id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_createChat: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_createChat"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" users: "); ++stages.back(); types.push_back(00); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" title: "); ++stages.back(); types.push_back(mtpc_string); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_forwardMessage: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_forwardMessage"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" random_id: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_requestEncryption: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_requestEncryption"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" user_id: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" random_id: "); ++stages.back(); types.push_back(mtpc_int); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" g_a: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + case mtpc_messages_acceptEncryption: + if (stage) { + to.add(",\n").addSpaces(lev); + } else { + to.add("{ messages_acceptEncryption"); + to.add("\n").addSpaces(lev); + } + switch (stage) { + case 0: to.add(" peer: "); ++stages.back(); types.push_back(0); vtypes.push_back(0); stages.push_back(0); break; + case 1: to.add(" g_b: "); ++stages.back(); types.push_back(mtpc_bytes); vtypes.push_back(0); stages.push_back(0); break; + case 2: to.add(" key_fingerprint: "); ++stages.back(); types.push_back(mtpc_long); vtypes.push_back(0); stages.push_back(0); break; + default: to.add("}"); types.pop_back(); vtypes.pop_back(); stages.pop_back(); break; + } + break; + + default: + mtpTextSerializeCore(to, from, end, type, lev, vtype); + types.pop_back(); vtypes.pop_back(); stages.pop_back(); + break; } - cons = *from; - ++from; - ++start; } - - switch (mtpTypeId(cons)) { - case mtpc_inputPeerNotifySettings: - to.add("{ inputPeerNotifySettings"); - to.add("\n").add(add); - to.add(" mute_until: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" sound: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" show_previews: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" events_mask: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_importedContacts: - to.add("{ contacts_importedContacts"); - to.add("\n").add(add); - to.add(" imported: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" retry_contacts: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_future_salt: - to.add("{ future_salt"); - to.add("\n").add(add); - to.add(" valid_since: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" valid_until: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" salt: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_help_inviteText: - to.add("{ help_inviteText"); - to.add("\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputPhotoCropAuto: - to.add("{ inputPhotoCropAuto"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputPhotoCrop: - to.add("{ inputPhotoCrop"); - to.add("\n").add(add); - to.add(" crop_left: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add(" crop_top: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add(" crop_width: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_dhConfigNotModified: - to.add("{ messages_dhConfigNotModified"); - to.add("\n").add(add); - to.add(" random: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_dhConfig: - to.add("{ messages_dhConfig"); - to.add("\n").add(add); - to.add(" g: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" p: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" random: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_upload_file: - to.add("{ upload_file"); - to.add("\n").add(add); - to.add(" type: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" mtime: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputUserEmpty: - to.add("{ inputUserEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputUserSelf: - to.add("{ inputUserSelf"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputUserContact: - to.add("{ inputUserContact"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputUserForeign: - to.add("{ inputUserForeign"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputMediaEmpty: - to.add("{ inputMediaEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputMediaUploadedPhoto: - to.add("{ inputMediaUploadedPhoto"); - to.add("\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputMediaPhoto: - to.add("{ inputMediaPhoto"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputMediaGeoPoint: - to.add("{ inputMediaGeoPoint"); - to.add("\n").add(add); - to.add(" geo_point: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputMediaContact: - to.add("{ inputMediaContact"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputMediaUploadedVideo: - to.add("{ inputMediaUploadedVideo"); - to.add("\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" duration: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputMediaUploadedThumbVideo: - to.add("{ inputMediaUploadedThumbVideo"); - to.add("\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" thumb: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" duration: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputMediaVideo: - to.add("{ inputMediaVideo"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputMediaUploadedAudio: - to.add("{ inputMediaUploadedAudio"); - to.add("\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" duration: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputMediaAudio: - to.add("{ inputMediaAudio"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputMediaUploadedDocument: - to.add("{ inputMediaUploadedDocument"); - to.add("\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" file_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputMediaUploadedThumbDocument: - to.add("{ inputMediaUploadedThumbDocument"); - to.add("\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" thumb: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" file_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputMediaDocument: - to.add("{ inputMediaDocument"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photos_photos: - to.add("{ photos_photos"); - to.add("\n").add(add); - to.add(" photos: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photos_photosSlice: - to.add("{ photos_photosSlice"); - to.add("\n").add(add); - to.add(" count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" photos: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputEncryptedChat: - to.add("{ inputEncryptedChat"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photoSizeEmpty: - to.add("{ photoSizeEmpty"); - to.add("\n").add(add); - to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photoSize: - to.add("{ photoSize"); - to.add("\n").add(add); - to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" location: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photoCachedSize: - to.add("{ photoCachedSize"); - to.add("\n").add(add); - to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" location: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_importedContact: - to.add("{ importedContact"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" client_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_nearestDc: - to.add("{ nearestDc"); - to.add("\n").add(add); - to.add(" country: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" this_dc: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" nearest_dc: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contactStatus: - to.add("{ contactStatus"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" expires: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_resPQ: - to.add("{ resPQ"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" pq: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" server_public_key_fingerprints: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userStatusEmpty: - to.add("{ userStatusEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_userStatusOnline: - to.add("{ userStatusOnline"); - to.add("\n").add(add); - to.add(" expires: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userStatusOffline: - to.add("{ userStatusOffline"); - to.add("\n").add(add); - to.add(" was_online: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_documentEmpty: - to.add("{ documentEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_document: - to.add("{ document"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" file_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" thumb: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contactFound: - to.add("{ contactFound"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_destroy_session_ok: - to.add("{ destroy_session_ok"); - to.add("\n").add(add); - to.add(" session_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_destroy_session_none: - to.add("{ destroy_session_none"); - to.add("\n").add(add); - to.add(" session_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputFileLocation: - to.add("{ inputFileLocation"); - to.add("\n").add(add); - to.add(" volume_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" local_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" secret: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputVideoFileLocation: - to.add("{ inputVideoFileLocation"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputEncryptedFileLocation: - to.add("{ inputEncryptedFileLocation"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputAudioFileLocation: - to.add("{ inputAudioFileLocation"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputDocumentFileLocation: - to.add("{ inputDocumentFileLocation"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userProfilePhotoEmpty: - to.add("{ userProfilePhotoEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_userProfilePhoto: - to.add("{ userProfilePhoto"); - to.add("\n").add(add); - to.add(" photo_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" photo_small: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" photo_big: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_dialogs: - to.add("{ messages_dialogs"); - to.add("\n").add(add); - to.add(" dialogs: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_dialogsSlice: - to.add("{ messages_dialogsSlice"); - to.add("\n").add(add); - to.add(" count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" dialogs: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputPhotoEmpty: - to.add("{ inputPhotoEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputPhoto: - to.add("{ inputPhoto"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_link: - to.add("{ contacts_link"); - to.add("\n").add(add); - to.add(" my_link: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" foreign_link: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" user: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_statedMessage: - to.add("{ geochats_statedMessage"); - to.add("\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_dcOption: - to.add("{ dcOption"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" hostname: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" ip_address: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" port: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputAudioEmpty: - to.add("{ inputAudioEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputAudio: - to.add("{ inputAudio"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sentEncryptedMessage: - to.add("{ messages_sentEncryptedMessage"); - to.add("\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sentEncryptedFile: - to.add("{ messages_sentEncryptedFile"); - to.add("\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_msgs_all_info: - to.add("{ msgs_all_info"); - to.add("\n").add(add); - to.add(" msg_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); - to.add(" info: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputEncryptedFileEmpty: - to.add("{ inputEncryptedFileEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputEncryptedFileUploaded: - to.add("{ inputEncryptedFileUploaded"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" parts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" md5_checksum: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputEncryptedFile: - to.add("{ inputEncryptedFile"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputEncryptedFileBigUploaded: - to.add("{ inputEncryptedFileBigUploaded"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" parts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputPeerEmpty: - to.add("{ inputPeerEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputPeerSelf: - to.add("{ inputPeerSelf"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputPeerContact: - to.add("{ inputPeerContact"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputPeerForeign: - to.add("{ inputPeerForeign"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputPeerChat: - to.add("{ inputPeerChat"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_contacts: - to.add("{ contacts_contacts"); - to.add("\n").add(add); - to.add(" contacts: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_contactsNotModified: - to.add("{ contacts_contactsNotModified"); - to.add(" "); - to.add("}"); - break; - - case mtpc_contact: - to.add("{ contact"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" mutual: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_server_DH_params_fail: - to.add("{ server_DH_params_fail"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" new_nonce_hash: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_server_DH_params_ok: - to.add("{ server_DH_params_ok"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" encrypted_answer: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_chat: - to.add("{ messages_chat"); - to.add("\n").add(add); - to.add(" chat: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageMediaEmpty: - to.add("{ messageMediaEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_messageMediaPhoto: - to.add("{ messageMediaPhoto"); - to.add("\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageMediaVideo: - to.add("{ messageMediaVideo"); - to.add("\n").add(add); - to.add(" video: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageMediaGeo: - to.add("{ messageMediaGeo"); - to.add("\n").add(add); - to.add(" geo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageMediaContact: - to.add("{ messageMediaContact"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageMediaUnsupported: - to.add("{ messageMediaUnsupported"); - to.add("\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageMediaDocument: - to.add("{ messageMediaDocument"); - to.add("\n").add(add); - to.add(" document: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageMediaAudio: - to.add("{ messageMediaAudio"); - to.add("\n").add(add); - to.add(" audio: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_notifyPeer: - to.add("{ notifyPeer"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_notifyUsers: - to.add("{ notifyUsers"); - to.add(" "); - to.add("}"); - break; - - case mtpc_notifyChats: - to.add("{ notifyChats"); - to.add(" "); - to.add("}"); - break; - - case mtpc_notifyAll: - to.add("{ notifyAll"); - to.add(" "); - to.add("}"); - break; - - case mtpc_new_session_created: - to.add("{ new_session_created"); - to.add("\n").add(add); - to.add(" first_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" unique_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" server_salt: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_msgs_state_req: - to.add("{ msgs_state_req"); - to.add("\n").add(add); - to.add(" msg_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_sentCode: - to.add("{ auth_sentCode"); - to.add("\n").add(add); - to.add(" phone_registered: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" send_call_timeout: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" is_password: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_sentAppCode: - to.add("{ auth_sentAppCode"); - to.add("\n").add(add); - to.add(" phone_registered: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" send_call_timeout: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" is_password: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_sendMessageTypingAction: - to.add("{ sendMessageTypingAction"); - to.add(" "); - to.add("}"); - break; - - case mtpc_sendMessageCancelAction: - to.add("{ sendMessageCancelAction"); - to.add(" "); - to.add("}"); - break; - - case mtpc_sendMessageRecordVideoAction: - to.add("{ sendMessageRecordVideoAction"); - to.add(" "); - to.add("}"); - break; - - case mtpc_sendMessageUploadVideoAction: - to.add("{ sendMessageUploadVideoAction"); - to.add(" "); - to.add("}"); - break; - - case mtpc_sendMessageRecordAudioAction: - to.add("{ sendMessageRecordAudioAction"); - to.add(" "); - to.add("}"); - break; - - case mtpc_sendMessageUploadAudioAction: - to.add("{ sendMessageUploadAudioAction"); - to.add(" "); - to.add("}"); - break; - - case mtpc_sendMessageUploadPhotoAction: - to.add("{ sendMessageUploadPhotoAction"); - to.add(" "); - to.add("}"); - break; - - case mtpc_sendMessageUploadDocumentAction: - to.add("{ sendMessageUploadDocumentAction"); - to.add(" "); - to.add("}"); - break; - - case mtpc_sendMessageGeoLocationAction: - to.add("{ sendMessageGeoLocationAction"); - to.add(" "); - to.add("}"); - break; - - case mtpc_sendMessageChooseContactAction: - to.add("{ sendMessageChooseContactAction"); - to.add(" "); - to.add("}"); - break; - - case mtpc_encryptedMessage: - to.add("{ encryptedMessage"); - to.add("\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_encryptedMessageService: - to.add("{ encryptedMessageService"); - to.add("\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_server_DH_inner_data: - to.add("{ server_DH_inner_data"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" g: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" dh_prime: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" g_a: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" server_time: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_located: - to.add("{ geochats_located"); - to.add("\n").add(add); - to.add(" results: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contactBlocked: - to.add("{ contactBlocked"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photoEmpty: - to.add("{ photoEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photo: - to.add("{ photo"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" caption: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" geo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" sizes: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_found: - to.add("{ contacts_found"); - to.add("\n").add(add); - to.add(" results: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geoChatMessageEmpty: - to.add("{ geoChatMessageEmpty"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geoChatMessage: - to.add("{ geoChatMessage"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geoChatMessageService: - to.add("{ geoChatMessageService"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" action: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputVideoEmpty: - to.add("{ inputVideoEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputVideo: - to.add("{ inputVideo"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_peerUser: - to.add("{ peerUser"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_peerChat: - to.add("{ peerChat"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_msgs_ack: - to.add("{ msgs_ack"); - to.add("\n").add(add); - to.add(" msg_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_statedMessage: - to.add("{ messages_statedMessage"); - to.add("\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_statedMessageLink: - to.add("{ messages_statedMessageLink"); - to.add("\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" links: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_fileLocationUnavailable: - to.add("{ fileLocationUnavailable"); - to.add("\n").add(add); - to.add(" volume_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" local_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" secret: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_fileLocation: - to.add("{ fileLocation"); - to.add("\n").add(add); - to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" volume_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" local_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" secret: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sentMessage: - to.add("{ messages_sentMessage"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sentMessageLink: - to.add("{ messages_sentMessageLink"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" links: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geoPointEmpty: - to.add("{ geoPointEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_geoPoint: - to.add("{ geoPoint"); - to.add("\n").add(add); - to.add(" long: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add(" lat: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputDocumentEmpty: - to.add("{ inputDocumentEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputDocument: - to.add("{ inputDocument"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chatParticipantsForbidden: - to.add("{ chatParticipantsForbidden"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chatParticipants: - to.add("{ chatParticipants"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" admin_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" participants: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_myLinkEmpty: - to.add("{ contacts_myLinkEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_contacts_myLinkRequested: - to.add("{ contacts_myLinkRequested"); - to.add("\n").add(add); - to.add(" contact: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_myLinkContact: - to.add("{ contacts_myLinkContact"); - to.add(" "); - to.add("}"); - break; - - case mtpc_auth_authorization: - to.add("{ auth_authorization"); - to.add("\n").add(add); - to.add(" expires: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" user: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateNewMessage: - to.add("{ updateNewMessage"); - to.add("\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateMessageID: - to.add("{ updateMessageID"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateReadMessages: - to.add("{ updateReadMessages"); - to.add("\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateDeleteMessages: - to.add("{ updateDeleteMessages"); - to.add("\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateRestoreMessages: - to.add("{ updateRestoreMessages"); - to.add("\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateUserTyping: - to.add("{ updateUserTyping"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" action: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateChatUserTyping: - to.add("{ updateChatUserTyping"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" action: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateChatParticipants: - to.add("{ updateChatParticipants"); - to.add("\n").add(add); - to.add(" participants: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateUserStatus: - to.add("{ updateUserStatus"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" status: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateUserName: - to.add("{ updateUserName"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateUserPhoto: - to.add("{ updateUserPhoto"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" previous: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateContactRegistered: - to.add("{ updateContactRegistered"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateContactLink: - to.add("{ updateContactLink"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" my_link: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" foreign_link: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateActivation: - to.add("{ updateActivation"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateNewAuthorization: - to.add("{ updateNewAuthorization"); - to.add("\n").add(add); - to.add(" auth_key_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" device: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" location: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateNewGeoChatMessage: - to.add("{ updateNewGeoChatMessage"); - to.add("\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateNewEncryptedMessage: - to.add("{ updateNewEncryptedMessage"); - to.add("\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" qts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateEncryptedChatTyping: - to.add("{ updateEncryptedChatTyping"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateEncryption: - to.add("{ updateEncryption"); - to.add("\n").add(add); - to.add(" chat: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateEncryptedMessagesRead: - to.add("{ updateEncryptedMessagesRead"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateChatParticipantAdd: - to.add("{ updateChatParticipantAdd"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" inviter_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateChatParticipantDelete: - to.add("{ updateChatParticipantDelete"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateDcOptions: - to.add("{ updateDcOptions"); - to.add("\n").add(add); - to.add(" dc_options: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateUserBlocked: - to.add("{ updateUserBlocked"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" blocked: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateNotifySettings: - to.add("{ updateNotifySettings"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" notify_settings: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateServiceNotification: - to.add("{ updateServiceNotification"); - to.add("\n").add(add); - to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" popup: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_p_q_inner_data: - to.add("{ p_q_inner_data"); - to.add("\n").add(add); - to.add(" pq: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" p: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" q: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" new_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int256, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_http_wait: - to.add("{ http_wait"); - to.add("\n").add(add); - to.add(" max_delay: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" wait_after: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_wait: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_messages: - to.add("{ messages_messages"); - to.add("\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_messagesSlice: - to.add("{ messages_messagesSlice"); - to.add("\n").add(add); - to.add(" count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updates_differenceEmpty: - to.add("{ updates_differenceEmpty"); - to.add("\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updates_difference: - to.add("{ updates_difference"); - to.add("\n").add(add); - to.add(" new_messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" new_encrypted_messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" other_updates: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" state: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updates_differenceSlice: - to.add("{ updates_differenceSlice"); - to.add("\n").add(add); - to.add(" new_messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" new_encrypted_messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" other_updates: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" intermediate_state: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_affectedHistory: - to.add("{ messages_affectedHistory"); - to.add("\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputNotifyPeer: - to.add("{ inputNotifyPeer"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputNotifyUsers: - to.add("{ inputNotifyUsers"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputNotifyChats: - to.add("{ inputNotifyChats"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputNotifyAll: - to.add("{ inputNotifyAll"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputNotifyGeoChatPeer: - to.add("{ inputNotifyGeoChatPeer"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chatPhotoEmpty: - to.add("{ chatPhotoEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_chatPhoto: - to.add("{ chatPhoto"); - to.add("\n").add(add); - to.add(" photo_small: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" photo_big: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageEmpty: - to.add("{ messageEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_message: - to.add("{ message"); - to.add("\n").add(add); - to.add(" flags: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" to_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageForwarded: - to.add("{ messageForwarded"); - to.add("\n").add(add); - to.add(" flags: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" fwd_from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" fwd_date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" to_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageService: - to.add("{ messageService"); - to.add("\n").add(add); - to.add(" flags: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" to_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" action: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_client_DH_inner_data: - to.add("{ client_DH_inner_data"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" retry_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" g_b: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updatesTooLong: - to.add("{ updatesTooLong"); - to.add(" "); - to.add("}"); - break; - - case mtpc_updateShortMessage: - to.add("{ updateShortMessage"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateShortChatMessage: - to.add("{ updateShortChatMessage"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" from_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updateShort: - to.add("{ updateShort"); - to.add("\n").add(add); - to.add(" update: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updatesCombined: - to.add("{ updatesCombined"); - to.add("\n").add(add); - to.add(" updates: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq_start: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updates: - to.add("{ updates"); - to.add("\n").add(add); - to.add(" updates: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_messages: - to.add("{ geochats_messages"); - to.add("\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_messagesSlice: - to.add("{ geochats_messagesSlice"); - to.add("\n").add(add); - to.add(" count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_rpc_error: - to.add("{ rpc_error"); - to.add("\n").add(add); - to.add(" error_code: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" error_message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_storage_fileUnknown: - to.add("{ storage_fileUnknown"); - to.add(" "); - to.add("}"); - break; - - case mtpc_storage_fileJpeg: - to.add("{ storage_fileJpeg"); - to.add(" "); - to.add("}"); - break; - - case mtpc_storage_fileGif: - to.add("{ storage_fileGif"); - to.add(" "); - to.add("}"); - break; - - case mtpc_storage_filePng: - to.add("{ storage_filePng"); - to.add(" "); - to.add("}"); - break; - - case mtpc_storage_filePdf: - to.add("{ storage_filePdf"); - to.add(" "); - to.add("}"); - break; - - case mtpc_storage_fileMp3: - to.add("{ storage_fileMp3"); - to.add(" "); - to.add("}"); - break; - - case mtpc_storage_fileMov: - to.add("{ storage_fileMov"); - to.add(" "); - to.add("}"); - break; - - case mtpc_storage_filePartial: - to.add("{ storage_filePartial"); - to.add(" "); - to.add("}"); - break; - - case mtpc_storage_fileMp4: - to.add("{ storage_fileMp4"); - to.add(" "); - to.add("}"); - break; - - case mtpc_storage_fileWebp: - to.add("{ storage_fileWebp"); - to.add(" "); - to.add("}"); - break; - - case mtpc_contacts_suggested: - to.add("{ contacts_suggested"); - to.add("\n").add(add); - to.add(" results: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_peerNotifySettingsEmpty: - to.add("{ peerNotifySettingsEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_peerNotifySettings: - to.add("{ peerNotifySettings"); - to.add("\n").add(add); - to.add(" mute_until: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" sound: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" show_previews: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" events_mask: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updates_state: - to.add("{ updates_state"); - to.add("\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" qts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" unread_count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_messageEmpty: - to.add("{ messages_messageEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_messages_message: - to.add("{ messages_message"); - to.add("\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputFile: - to.add("{ inputFile"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" parts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" md5_checksum: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputFileBig: - to.add("{ inputFileBig"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" parts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chatParticipant: - to.add("{ chatParticipant"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" inviter_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contactSuggested: - to.add("{ contactSuggested"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" mutual_contacts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_dh_gen_ok: - to.add("{ dh_gen_ok"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" new_nonce_hash1: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_dh_gen_retry: - to.add("{ dh_gen_retry"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" new_nonce_hash2: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_dh_gen_fail: - to.add("{ dh_gen_fail"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" new_nonce_hash3: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photos_photo: - to.add("{ photos_photo"); - to.add("\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userEmpty: - to.add("{ userEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userSelf: - to.add("{ userSelf"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" phone: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" status: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" inactive: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userContact: - to.add("{ userContact"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" phone: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" status: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userRequest: - to.add("{ userRequest"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" phone: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" status: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userForeign: - to.add("{ userForeign"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" status: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userDeleted: - to.add("{ userDeleted"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_help_appUpdate: - to.add("{ help_appUpdate"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" critical: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" url: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" text: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_help_noAppUpdate: - to.add("{ help_noAppUpdate"); - to.add(" "); - to.add("}"); - break; - - case mtpc_contacts_foreignLinkUnknown: - to.add("{ contacts_foreignLinkUnknown"); - to.add(" "); - to.add("}"); - break; - - case mtpc_contacts_foreignLinkRequested: - to.add("{ contacts_foreignLinkRequested"); - to.add("\n").add(add); - to.add(" has_phone: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_foreignLinkMutual: - to.add("{ contacts_foreignLinkMutual"); - to.add(" "); - to.add("}"); - break; - - case mtpc_encryptedChatEmpty: - to.add("{ encryptedChatEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_encryptedChatWaiting: - to.add("{ encryptedChatWaiting"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" admin_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" participant_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_encryptedChatRequested: - to.add("{ encryptedChatRequested"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" admin_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" participant_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" g_a: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_encryptedChat: - to.add("{ encryptedChat"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" admin_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" participant_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" g_a_or_b: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_encryptedChatDiscarded: - to.add("{ encryptedChatDiscarded"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_dialog: - to.add("{ dialog"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" top_message: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" unread_count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" notify_settings: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_help_support: - to.add("{ help_support"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" user: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputMessagesFilterEmpty: - to.add("{ inputMessagesFilterEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputMessagesFilterPhotos: - to.add("{ inputMessagesFilterPhotos"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputMessagesFilterVideo: - to.add("{ inputMessagesFilterVideo"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputMessagesFilterPhotoVideo: - to.add("{ inputMessagesFilterPhotoVideo"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputMessagesFilterDocument: - to.add("{ inputMessagesFilterDocument"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputMessagesFilterAudio: - to.add("{ inputMessagesFilterAudio"); - to.add(" "); - to.add("}"); - break; - - case mtpc_messageActionEmpty: - to.add("{ messageActionEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_messageActionChatCreate: - to.add("{ messageActionChatCreate"); - to.add("\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageActionChatEditTitle: - to.add("{ messageActionChatEditTitle"); - to.add("\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageActionChatEditPhoto: - to.add("{ messageActionChatEditPhoto"); - to.add("\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageActionChatDeletePhoto: - to.add("{ messageActionChatDeletePhoto"); - to.add(" "); - to.add("}"); - break; - - case mtpc_messageActionChatAddUser: - to.add("{ messageActionChatAddUser"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageActionChatDeleteUser: - to.add("{ messageActionChatDeleteUser"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageActionGeoChatCreate: - to.add("{ messageActionGeoChatCreate"); - to.add("\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" address: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messageActionGeoChatCheckin: - to.add("{ messageActionGeoChatCheckin"); - to.add(" "); - to.add("}"); - break; - - case mtpc_auth_exportedAuthorization: - to.add("{ auth_exportedAuthorization"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_peerNotifyEventsEmpty: - to.add("{ peerNotifyEventsEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_peerNotifyEventsAll: - to.add("{ peerNotifyEventsAll"); - to.add(" "); - to.add("}"); - break; - - case mtpc_chatFull: - to.add("{ chatFull"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" participants: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chat_photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" notify_settings: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_videoEmpty: - to.add("{ videoEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_video: - to.add("{ video"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" caption: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" duration: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" thumb: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" w: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" h: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_audioEmpty: - to.add("{ audioEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_audio: - to.add("{ audio"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" duration: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" mime_type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_rpc_answer_unknown: - to.add("{ rpc_answer_unknown"); - to.add(" "); - to.add("}"); - break; - - case mtpc_rpc_answer_dropped_running: - to.add("{ rpc_answer_dropped_running"); - to.add(" "); - to.add("}"); - break; - - case mtpc_rpc_answer_dropped: - to.add("{ rpc_answer_dropped"); - to.add("\n").add(add); - to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" seq_no: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_encryptedFileEmpty: - to.add("{ encryptedFileEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_encryptedFile: - to.add("{ encryptedFile"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" size: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_blocked: - to.add("{ contacts_blocked"); - to.add("\n").add(add); - to.add(" blocked: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_blockedSlice: - to.add("{ contacts_blockedSlice"); - to.add("\n").add(add); - to.add(" count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" blocked: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_statedMessages: - to.add("{ messages_statedMessages"); - to.add("\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_statedMessagesLinks: - to.add("{ messages_statedMessagesLinks"); - to.add("\n").add(add); - to.add(" messages: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" links: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" seq: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_msg_resend_req: - to.add("{ msg_resend_req"); - to.add("\n").add(add); - to.add(" msg_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_pong: - to.add("{ pong"); - to.add("\n").add(add); - to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" ping_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_msg_detailed_info: - to.add("{ msg_detailed_info"); - to.add("\n").add(add); - to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" answer_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" status: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_msg_new_detailed_info: - to.add("{ msg_new_detailed_info"); - to.add("\n").add(add); - to.add(" answer_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" status: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chatEmpty: - to.add("{ chatEmpty"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chat: - to.add("{ chat"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" participants_count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" left: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chatForbidden: - to.add("{ chatForbidden"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geoChat: - to.add("{ geoChat"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" address: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" venue: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" geo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" participants_count: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" checked_in: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_config: - to.add("{ config"); - to.add("\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" test_mode: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" this_dc: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" dc_options: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chat_size_max: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" broadcast_size_max: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_wallPaper: - to.add("{ wallPaper"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" sizes: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" color: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_wallPaperSolid: - to.add("{ wallPaperSolid"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" bg_color: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" color: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_future_salts: - to.add("{ future_salts"); - to.add("\n").add(add); - to.add(" req_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" now: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" salts: "); mtpTextSerializeType(to, from, end, mtpc_vector, level + 1, mtpc_future_salt); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputGeoChat: - to.add("{ inputGeoChat"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" access_hash: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_msgs_state_info: - to.add("{ msgs_state_info"); - to.add("\n").add(add); - to.add(" req_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" info: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputGeoPointEmpty: - to.add("{ inputGeoPointEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputGeoPoint: - to.add("{ inputGeoPoint"); - to.add("\n").add(add); - to.add(" lat: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add(" long: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputPhoneContact: - to.add("{ inputPhoneContact"); - to.add("\n").add(add); - to.add(" client_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" phone: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_chats: - to.add("{ messages_chats"); - to.add("\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputChatPhotoEmpty: - to.add("{ inputChatPhotoEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputChatUploadedPhoto: - to.add("{ inputChatUploadedPhoto"); - to.add("\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" crop: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputChatPhoto: - to.add("{ inputChatPhoto"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" crop: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_chatFull: - to.add("{ messages_chatFull"); - to.add("\n").add(add); - to.add(" full_chat: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" chats: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_inputPeerNotifyEventsEmpty: - to.add("{ inputPeerNotifyEventsEmpty"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputPeerNotifyEventsAll: - to.add("{ inputPeerNotifyEventsAll"); - to.add(" "); - to.add("}"); - break; - - case mtpc_inputAppEvent: - to.add("{ inputAppEvent"); - to.add("\n").add(add); - to.add(" time: "); mtpTextSerializeType(to, from, end, mtpc_double, level + 1); to.add(",\n").add(add); - to.add(" type: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" data: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_bad_msg_notification: - to.add("{ bad_msg_notification"); - to.add("\n").add(add); - to.add(" bad_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" bad_msg_seqno: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" error_code: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_bad_server_salt: - to.add("{ bad_server_salt"); - to.add("\n").add(add); - to.add(" bad_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" bad_msg_seqno: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" error_code: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" new_server_salt: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_checkedPhone: - to.add("{ auth_checkedPhone"); - to.add("\n").add(add); - to.add(" phone_registered: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" phone_invited: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_userFull: - to.add("{ userFull"); - to.add("\n").add(add); - to.add(" user: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" link: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" profile_photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" notify_settings: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" blocked: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" real_first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" real_last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_chatLocated: - to.add("{ chatLocated"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" distance: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_importContacts: - to.add("{ contacts_importContacts"); - to.add("\n").add(add); - to.add(" contacts: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" replace: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_forwardMessages: - to.add("{ messages_forwardMessages"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sendBroadcast: - to.add("{ messages_sendBroadcast"); - to.add("\n").add(add); - to.add(" contacts: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_upload_getFile: - to.add("{ upload_getFile"); - to.add("\n").add(add); - to.add(" location: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_signUp: - to.add("{ auth_signUp"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" phone_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_signIn: - to.add("{ auth_signIn"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" phone_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_importAuthorization: - to.add("{ auth_importAuthorization"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_getMessages: - to.add("{ messages_getMessages"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_getHistory: - to.add("{ messages_getHistory"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_search: - to.add("{ messages_search"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" q: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" filter: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" min_date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photos_getUserPhotos: - to.add("{ photos_getUserPhotos"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updates_getDifference: - to.add("{ updates_getDifference"); - to.add("\n").add(add); - to.add(" pts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" qts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_readHistory: - to.add("{ messages_readHistory"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" read_contents: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_deleteHistory: - to.add("{ messages_deleteHistory"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_help_getNearestDc: - to.add("{ help_getNearestDc"); - to.add(" "); - to.add("}"); - break; - - case mtpc_req_pq: - to.add("{ req_pq"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_help_getSupport: - to.add("{ help_getSupport"); - to.add(" "); - to.add("}"); - break; - - case mtpc_contacts_getSuggested: - to.add("{ contacts_getSuggested"); - to.add("\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_account_getNotifySettings: - to.add("{ account_getNotifySettings"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_updates_getState: - to.add("{ updates_getState"); - to.add(" "); - to.add("}"); - break; - - case mtpc_photos_updateProfilePhoto: - to.add("{ photos_updateProfilePhoto"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" crop: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_set_client_DH_params: - to.add("{ set_client_DH_params"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" encrypted_data: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_invokeAfterMsg: - to.add("{ invokeAfterMsg"); - to.add("\n").add(add); - to.add(" msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" query: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_invokeAfterMsgs: - to.add("{ invokeAfterMsgs"); - to.add("\n").add(add); - to.add(" msg_ids: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_long); to.add(",\n").add(add); - to.add(" query: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_initConnection: - to.add("{ initConnection"); - to.add("\n").add(add); - to.add(" api_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" device_model: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" system_version: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" app_version: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" lang_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" query: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_getStatuses: - to.add("{ contacts_getStatuses"); - to.add(" "); - to.add("}"); - break; - - case mtpc_contacts_deleteContact: - to.add("{ contacts_deleteContact"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_photos_uploadProfilePhoto: - to.add("{ photos_uploadProfilePhoto"); - to.add("\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" caption: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" geo_point: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" crop: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_account_updateProfile: - to.add("{ account_updateProfile"); - to.add("\n").add(add); - to.add(" first_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" last_name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_importCard: - to.add("{ contacts_importCard"); - to.add("\n").add(add); - to.add(" export_card: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_account_updateUsername: - to.add("{ account_updateUsername"); - to.add("\n").add(add); - to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_help_getAppUpdate: - to.add("{ help_getAppUpdate"); - to.add("\n").add(add); - to.add(" device_model: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" system_version: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" app_version: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" lang_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_users_getUsers: - to.add("{ users_getUsers"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_checkin: - to.add("{ geochats_checkin"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_editChatTitle: - to.add("{ geochats_editChatTitle"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" address: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_editChatPhoto: - to.add("{ geochats_editChatPhoto"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_sendMessage: - to.add("{ geochats_sendMessage"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_sendMedia: - to.add("{ geochats_sendMedia"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_createGeoChat: - to.add("{ geochats_createGeoChat"); - to.add("\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" geo_point: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" address: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" venue: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_exportAuthorization: - to.add("{ auth_exportAuthorization"); - to.add("\n").add(add); - to.add(" dc_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_requestEncryption: - to.add("{ messages_requestEncryption"); - to.add("\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" g_a: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_acceptEncryption: - to.add("{ messages_acceptEncryption"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" g_b: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_getRecents: - to.add("{ geochats_getRecents"); - to.add("\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_search: - to.add("{ geochats_search"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" q: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" filter: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" min_date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_getHistory: - to.add("{ geochats_getHistory"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sendEncrypted: - to.add("{ messages_sendEncrypted"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" data: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sendEncryptedFile: - to.add("{ messages_sendEncryptedFile"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" data: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add(" file: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sendEncryptedService: - to.add("{ messages_sendEncryptedService"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" data: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_destroy_session: - to.add("{ destroy_session"); - to.add("\n").add(add); - to.add(" session_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_receivedQueue: - to.add("{ messages_receivedQueue"); - to.add("\n").add(add); - to.add(" max_qts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_getContacts: - to.add("{ contacts_getContacts"); - to.add("\n").add(add); - to.add(" hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_rpc_drop_answer: - to.add("{ rpc_drop_answer"); - to.add("\n").add(add); - to.add(" req_msg_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_getBlocked: - to.add("{ contacts_getBlocked"); - to.add("\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_help_getInviteText: - to.add("{ help_getInviteText"); - to.add("\n").add(add); - to.add(" lang_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_getDhConfig: - to.add("{ messages_getDhConfig"); - to.add("\n").add(add); - to.add(" version: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" random_length: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_ping: - to.add("{ ping"); - to.add("\n").add(add); - to.add(" ping_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_ping_delay_disconnect: - to.add("{ ping_delay_disconnect"); - to.add("\n").add(add); - to.add(" ping_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" disconnect_delay: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_sendCode: - to.add("{ auth_sendCode"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" sms_type: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" api_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" api_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" lang_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_getDialogs: - to.add("{ messages_getDialogs"); - to.add("\n").add(add); - to.add(" offset: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_help_getConfig: - to.add("{ help_getConfig"); - to.add(" "); - to.add("}"); - break; - - case mtpc_geochats_getLocated: - to.add("{ geochats_getLocated"); - to.add("\n").add(add); - to.add(" geo_point: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" radius: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_users_getFullUser: - to.add("{ users_getFullUser"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_exportCard: - to.add("{ contacts_exportCard"); - to.add(" "); - to.add("}"); - break; - - case mtpc_messages_deleteMessages: - to.add("{ messages_deleteMessages"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_restoreMessages: - to.add("{ messages_restoreMessages"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_receivedMessages: - to.add("{ messages_receivedMessages"); - to.add("\n").add(add); - to.add(" max_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_readMessageContents: - to.add("{ messages_readMessageContents"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_search: - to.add("{ contacts_search"); - to.add("\n").add(add); - to.add(" q: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_get_future_salts: - to.add("{ get_future_salts"); - to.add("\n").add(add); - to.add(" num: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_account_getWallPapers: - to.add("{ account_getWallPapers"); - to.add(" "); - to.add("}"); - break; - - case mtpc_req_DH_params: - to.add("{ req_DH_params"); - to.add("\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" server_nonce: "); mtpTextSerializeType(to, from, end, mtpc_int128, level + 1); to.add(",\n").add(add); - to.add(" p: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" q: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" public_key_fingerprint: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" encrypted_data: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_register_saveDeveloperInfo: - to.add("{ register_saveDeveloperInfo"); - to.add("\n").add(add); - to.add(" name: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" email: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" age: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" city: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_sendCall: - to.add("{ auth_sendCall"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_logOut: - to.add("{ auth_logOut"); - to.add(" "); - to.add("}"); - break; - - case mtpc_auth_resetAuthorizations: - to.add("{ auth_resetAuthorizations"); - to.add(" "); - to.add("}"); - break; - - case mtpc_auth_sendInvites: - to.add("{ auth_sendInvites"); - to.add("\n").add(add); - to.add(" phone_numbers: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_string); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_bindTempAuthKey: - to.add("{ auth_bindTempAuthKey"); - to.add("\n").add(add); - to.add(" perm_auth_key_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" nonce: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" expires_at: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" encrypted_message: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_account_registerDevice: - to.add("{ account_registerDevice"); - to.add("\n").add(add); - to.add(" token_type: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" token: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" device_model: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" system_version: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" app_version: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" app_sandbox: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" lang_code: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_account_unregisterDevice: - to.add("{ account_unregisterDevice"); - to.add("\n").add(add); - to.add(" token_type: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" token: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_account_updateNotifySettings: - to.add("{ account_updateNotifySettings"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" settings: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_account_resetNotifySettings: - to.add("{ account_resetNotifySettings"); - to.add(" "); - to.add("}"); - break; - - case mtpc_account_updateStatus: - to.add("{ account_updateStatus"); - to.add("\n").add(add); - to.add(" offline: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_deleteContacts: - to.add("{ contacts_deleteContacts"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_block: - to.add("{ contacts_block"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_contacts_unblock: - to.add("{ contacts_unblock"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_setTyping: - to.add("{ messages_setTyping"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" action: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_upload_saveFilePart: - to.add("{ upload_saveFilePart"); - to.add("\n").add(add); - to.add(" file_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" file_part: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_help_saveAppLog: - to.add("{ help_saveAppLog"); - to.add("\n").add(add); - to.add(" events: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_setTyping: - to.add("{ geochats_setTyping"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" typing: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_discardEncryption: - to.add("{ messages_discardEncryption"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_setEncryptedTyping: - to.add("{ messages_setEncryptedTyping"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" typing: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_readEncryptedHistory: - to.add("{ messages_readEncryptedHistory"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" max_date: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_upload_saveBigFilePart: - to.add("{ upload_saveBigFilePart"); - to.add("\n").add(add); - to.add(" file_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add(" file_part: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" file_total_parts: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" bytes: "); mtpTextSerializeType(to, from, end, mtpc_bytes, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_sendSms: - to.add("{ auth_sendSms"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" phone_code_hash: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_account_checkUsername: - to.add("{ account_checkUsername"); - to.add("\n").add(add); - to.add(" username: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_getChats: - to.add("{ messages_getChats"); - to.add("\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, 0, level + 1, mtpc_int); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_getFullChat: - to.add("{ messages_getFullChat"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_geochats_getFullChat: - to.add("{ geochats_getFullChat"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sendMedia: - to.add("{ messages_sendMedia"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" media: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_editChatTitle: - to.add("{ messages_editChatTitle"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_editChatPhoto: - to.add("{ messages_editChatPhoto"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" photo: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_addChatUser: - to.add("{ messages_addChatUser"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" fwd_limit: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_deleteChatUser: - to.add("{ messages_deleteChatUser"); - to.add("\n").add(add); - to.add(" chat_id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" user_id: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_createChat: - to.add("{ messages_createChat"); - to.add("\n").add(add); - to.add(" users: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" title: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_forwardMessage: - to.add("{ messages_forwardMessage"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" id: "); mtpTextSerializeType(to, from, end, mtpc_int, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_messages_sendMessage: - to.add("{ messages_sendMessage"); - to.add("\n").add(add); - to.add(" peer: "); mtpTextSerializeType(to, from, end, 0, level + 1); to.add(",\n").add(add); - to.add(" message: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add(" random_id: "); mtpTextSerializeType(to, from, end, mtpc_long, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - case mtpc_auth_checkPhone: - to.add("{ auth_checkPhone"); - to.add("\n").add(add); - to.add(" phone_number: "); mtpTextSerializeType(to, from, end, mtpc_string, level + 1); to.add(",\n").add(add); - to.add("}"); - break; - - - default: - mtpTextSerializeCore(to, from, end, cons, level, vcons); - break; - } - } catch (Exception &e) { to.add("[ERROR] "); - to.add("(").add(e.what()).add("), cons: 0x").add(mtpWrapNumber(cons, 16)); - if (vcons) to.add(", vcons: 0x").add(mtpWrapNumber(vcons)); + to.add("(").add(e.what()).add("), cons: 0x").add(mtpWrapNumber(type, 16)); + if (vtype) to.add(", vcons: 0x").add(mtpWrapNumber(vtype)); to.add(", ").add(mb(start, (end - start) * sizeof(mtpPrime)).str()); } } diff --git a/Telegram/SourceFiles/settings.h b/Telegram/SourceFiles/settings.h index cd4fd1ca4..27bfaf9e8 100644 --- a/Telegram/SourceFiles/settings.h +++ b/Telegram/SourceFiles/settings.h @@ -19,9 +19,9 @@ Copyright (c) 2014 John Preston, https://tdesktop.com extern bool gDebug; inline bool cDebug() { -#if defined _DEBUG && !defined Q_OS_MAC +#if defined _DEBUG return true; -#elif defined _WITH_DEBUG || (defined _DEBUG && defined Q_OS_MAC) +#elif defined _WITH_DEBUG return gDebug; #else return false;