Skip to content

Commit c06f56d

Browse files
committed
update to 9.5.4
1 parent 07a2c9a commit c06f56d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1289
-517
lines changed

‎TMessagesProj/jni/tgnet/ConnectionsManager.cpp

+1-7
Original file line numberDiff line numberDiff line change
@@ -887,13 +887,7 @@ void ConnectionsManager::onConnectionDataReceived(Connection *connection, Native
887887
}
888888

889889
deserializingDatacenter = datacenter;
890-
bool error = false;
891-
uint32_t constructor = data->readUint32(&error);
892-
TLObject *object = request->deserializeResponse(data, constructor, instanceNum, error);
893-
if (object != nullptr && error) {
894-
delete object;
895-
object = nullptr;
896-
}
890+
TLObject *object = TLdeserialize(request, messageLength, data);
897891

898892
if (object != nullptr) {
899893
if (datacenter->isHandshaking(connection->isMediaConnection)) {

‎TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java

+43-10
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
import android.text.Layout;
6060
import android.text.Selection;
6161
import android.text.Spannable;
62+
import android.text.SpannableString;
6263
import android.text.SpannableStringBuilder;
6364
import android.text.Spanned;
6465
import android.text.SpannedString;
@@ -136,6 +137,7 @@
136137
import org.telegram.ui.Components.BackgroundGradientDrawable;
137138
import org.telegram.ui.Components.Bulletin;
138139
import org.telegram.ui.Components.CubicBezierInterpolator;
140+
import org.telegram.ui.Components.EllipsizeSpanAnimator;
139141
import org.telegram.ui.Components.ForegroundColorSpanThemable;
140142
import org.telegram.ui.Components.ForegroundDetector;
141143
import org.telegram.ui.Components.HideViewAfterAnimation;
@@ -185,6 +187,7 @@
185187
import java.util.Locale;
186188
import java.util.Map;
187189
import java.util.concurrent.atomic.AtomicBoolean;
190+
import java.util.concurrent.atomic.AtomicReference;
188191
import java.util.regex.Matcher;
189192
import java.util.regex.Pattern;
190193

@@ -3436,24 +3439,25 @@ public static boolean openForView(TLRPC.Document document, boolean forceCache, A
34363439
return openForView(f, fileName, document.mime_type, activity, null);
34373440
}
34383441

3439-
public static SpannableStringBuilder formatSpannableSimple(String format, CharSequence... cs) {
3442+
public static SpannableStringBuilder formatSpannableSimple(CharSequence format, CharSequence... cs) {
34403443
return formatSpannable(format, i -> "%s", cs);
34413444
}
34423445

3443-
public static SpannableStringBuilder formatSpannable(String format, CharSequence... cs) {
3444-
if (format.contains("%s"))
3446+
public static SpannableStringBuilder formatSpannable(CharSequence format, CharSequence... cs) {
3447+
if (format.toString().contains("%s"))
34453448
return formatSpannableSimple(format, cs);
34463449
return formatSpannable(format, i -> "%" + (i + 1) + "$s", cs);
34473450
}
34483451

3449-
public static SpannableStringBuilder formatSpannable(String format, GenericProvider<Integer, String> keysProvider, CharSequence... cs) {
3450-
SpannableStringBuilder stringBuilder = new SpannableStringBuilder(format);
3452+
public static SpannableStringBuilder formatSpannable(CharSequence format, GenericProvider<Integer, String> keysProvider, CharSequence... cs) {
3453+
String str = format.toString();
3454+
SpannableStringBuilder stringBuilder = SpannableStringBuilder.valueOf(format);
34513455
for (int i = 0; i < cs.length; i++) {
34523456
String key = keysProvider.provide(i);
3453-
int j = format.indexOf(key);
3457+
int j = str.indexOf(key);
34543458
if (j != -1) {
34553459
stringBuilder.replace(j, j + key.length(), cs[i]);
3456-
format = format.substring(0, j) + cs[i].toString() + format.substring(j + key.length());
3460+
str = str.substring(0, j) + cs[i].toString() + str.substring(j + key.length());
34573461
}
34583462
}
34593463
return stringBuilder;
@@ -3758,14 +3762,43 @@ public static void showProxyAlert(Activity activity, final String address, final
37583762
text = password;
37593763
detail = LocaleController.getString("UseProxyPassword", R.string.UseProxyPassword);
37603764
} else if (a == 5) {
3761-
text = LocaleController.getString(R.string.Checking);
3765+
text = LocaleController.getString(R.string.ProxyBottomSheetChecking);
37623766
detail = LocaleController.getString(R.string.ProxyStatus);
37633767
}
37643768
if (TextUtils.isEmpty(text)) {
37653769
continue;
37663770
}
3767-
TextDetailSettingsCell cell = new TextDetailSettingsCell(activity);
3768-
cell.setTextAndValue(text, detail, true);
3771+
AtomicReference<EllipsizeSpanAnimator> ellRef = new AtomicReference<>();
3772+
TextDetailSettingsCell cell = new TextDetailSettingsCell(activity) {
3773+
@Override
3774+
protected void onAttachedToWindow() {
3775+
super.onAttachedToWindow();
3776+
if (ellRef.get() != null) {
3777+
ellRef.get().onAttachedToWindow();
3778+
}
3779+
}
3780+
3781+
@Override
3782+
protected void onDetachedFromWindow() {
3783+
super.onDetachedFromWindow();
3784+
if (ellRef.get() != null) {
3785+
ellRef.get().onDetachedFromWindow();
3786+
}
3787+
}
3788+
};
3789+
if (a == 5) {
3790+
SpannableStringBuilder spannableStringBuilder = SpannableStringBuilder.valueOf(text);
3791+
EllipsizeSpanAnimator ellipsizeAnimator = new EllipsizeSpanAnimator(cell);
3792+
ellipsizeAnimator.addView(cell);
3793+
SpannableString ell = new SpannableString("...");
3794+
ellipsizeAnimator.wrap(ell, 0);
3795+
spannableStringBuilder.append(ell);
3796+
ellRef.set(ellipsizeAnimator);
3797+
3798+
cell.setTextAndValue(spannableStringBuilder, detail, true);
3799+
} else {
3800+
cell.setTextAndValue(text, detail, true);
3801+
}
37693802
cell.getTextView().setTextColor(Theme.getColor(Theme.key_dialogTextBlack));
37703803
cell.getValueTextView().setTextColor(Theme.getColor(Theme.key_dialogTextGray3));
37713804
linearLayout.addView(cell, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT));

‎TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ public class BuildVars {
2424
public static boolean USE_CLOUD_STRINGS = true;
2525
public static boolean CHECK_UPDATES = true;
2626
public static boolean NO_SCOPED_STORAGE = Build.VERSION.SDK_INT <= 29;
27-
public static int BUILD_VERSION = 3213;
28-
public static String BUILD_VERSION_STRING = "9.5.3";
27+
public static int BUILD_VERSION = 3227;
28+
public static String BUILD_VERSION_STRING = "9.5.4";
2929
public static int APP_ID = 4;
3030
public static String APP_HASH = "014b35b6184100b085b0d0572f9b5103";
3131

‎TMessagesProj/src/main/java/org/telegram/messenger/CallReceiver.java

+32-1
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,39 @@ public void onReceive(final Context context, Intent intent) {
2323
String phoneState = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
2424
if (TelephonyManager.EXTRA_STATE_RINGING.equals(phoneState)) {
2525
String phoneNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
26-
NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.didReceiveCall, PhoneFormat.stripExceptNumbers(phoneNumber));
26+
String phone = PhoneFormat.stripExceptNumbers(phoneNumber);
27+
SharedConfig.getPreferences().edit()
28+
.putString("last_call_phone_number", phone)
29+
.putLong("last_call_time", System.currentTimeMillis())
30+
.apply();
31+
NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.didReceiveCall, phone);
2732
}
2833
}
2934
}
35+
36+
public static String getLastReceivedCall() {
37+
String phone = SharedConfig.getPreferences().getString("last_call_phone_number", null);
38+
if (phone == null) {
39+
return null;
40+
}
41+
long lastTime = SharedConfig.getPreferences().getLong("last_call_time", 0);
42+
if (System.currentTimeMillis() - lastTime < 1000 * 60 * 60 * 15) {
43+
return phone;
44+
}
45+
return null;
46+
}
47+
48+
public static void checkLastReceivedCall() {
49+
String lastCall = getLastReceivedCall();
50+
if (lastCall != null) {
51+
NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.didReceiveCall, lastCall);
52+
}
53+
}
54+
55+
public static void clearLastCall() {
56+
SharedConfig.getPreferences().edit()
57+
.remove("last_call_phone_number")
58+
.remove("last_call_time")
59+
.apply();
60+
}
3061
}

‎TMessagesProj/src/main/java/org/telegram/messenger/ChatObject.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -1296,7 +1296,11 @@ public void sortParticipants() {
12961296
return Integer.compare(o2.date, o1.date);
12971297
}
12981298
};
1299-
Collections.sort(sortedParticipants, comparator);
1299+
try {
1300+
Collections.sort(sortedParticipants, comparator);
1301+
} catch (Exception e) {
1302+
1303+
}
13001304
TLRPC.TL_groupCallParticipant lastParticipant = sortedParticipants.isEmpty() ? null : sortedParticipants.get(sortedParticipants.size() - 1);
13011305
if (videoIsActive(lastParticipant, false, this) || videoIsActive(lastParticipant, true, this)) {
13021306
if (call.unmuted_video_count > activeVideos) {

‎TMessagesProj/src/main/java/org/telegram/messenger/DatabaseMigrationHelper.java

+6
Original file line numberDiff line numberDiff line change
@@ -1241,6 +1241,12 @@ public static int migrate(MessagesStorage messagesStorage, int version) throws E
12411241
database.executeFast("PRAGMA user_version = 114").stepThis().dispose();
12421242
version = 114;
12431243
}
1244+
if (version == 114) {
1245+
database.executeFast("CREATE TABLE bot_keyboard_topics(uid INTEGER, tid INTEGER, mid INTEGER, info BLOB, PRIMARY KEY(uid, tid))").stepThis().dispose();
1246+
database.executeFast("CREATE INDEX IF NOT EXISTS bot_keyboard_topics_idx_mid_v2 ON bot_keyboard_topics(mid, uid, tid);").stepThis().dispose();
1247+
database.executeFast("PRAGMA user_version = 115").stepThis().dispose();
1248+
version = 115;
1249+
}
12441250
return version;
12451251
}
12461252

‎TMessagesProj/src/main/java/org/telegram/messenger/EmojiData.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,7 @@ public class EmojiData {
521521
"⌚", "📱", "📲", "💻", "⌨", "🖥", "🖨", "🖱", "🖲", "🕹", "🗜", "💽", "💾", "💿", "📀", "📼", "📷", "📸", "📹", "🎥", "📽", "🎞", "📞", "☎", "📟", "📠", "📺", "📻", "🎙", "🎚", "🎛", "🧭", "⏱", "⏲", "⏰", "🕰", "⌛", "⏳", "📡", "🔋", "🪫", "🔌", "💡", "🔦", "🕯", "🪔", "🧯", "🛢", "💸", "💵", "💴", "💶", "💷", "🪙", "💰", "💳", "🪪", "💎", "⚖", "🪜", "🧰", "🪛", "🔧", "🔨", "⚒", "🛠", "⛏", "🪚", "🔩", "��", "🪤", "🧱", "⛓", "🧲", "🔫", "💣", "🧨", "🪓", "🔪", "🗡", "⚔", "🛡", "🚬", "⚰", "🪦", "⚱", "🏺", "🔮", "📿", "🧿", "🪬", "💈", "⚗", "🔭", "🔬", "🕳️", "🩻", "🩹", "🩺", "💊", "💉", "🩸", "🧬", "🦠", "🧫", "🧪", "🌡", "🧹", "🪠", "🧺", "🧻", "🚽", "🚰", "🚿", "🛁", "🛀", "🛀🏻", "🛀🏼", "🛀🏽", "🛀🏾", "🛀🏿", "🧼", "🪥", "🪒", "🪮", "🧽", "🪣", "🧴", "🛎", "🔑", "🗝", "🚪", "🪑", "🛋", "🛏", "🛌", "🧸", "🪆", "🖼", "🪞", "🪟", "🛍", "🛒", "🎁", "🎈", "🎏", "🎀", "🪄", "🪅", "🎊", "🎉", "🎎", "🪭", "🏮", "🎐", "🪩", "🧧", "✉", "📩", "📨", "📧", "💌", "📥", "📤", "📦", "🏷", "🪧", "📪", "📫", "📬", "📭", "📮", "📯", "📜", "📃", "📄", "📑", "🧾", "📊", "📈", "📉", "🗒", "🗓", "📆", "📅", "🗑", "📇", "🗃", "🗳", "🗄", "📋", "📁", "📂", "🗂", "🗞", "📰", "📓", "📔", "📒", "📕", "📗", "📘", "📙", "📚", "📖", "🔖", "🧷", "🔗", "📎", "🖇", "📐", "📏", "🧮", "📌", "📍", "✂", "🖊", "🖋", "✒", "🖌", "🖍", "📝", "✏", "🔍", "🔎", "🔏", "🔐", "🔒", "🔓"
522522
},
523523
new String[]{
524-
"🩷", "❤", "🧡", "💛", "💚", "🩵", "💙", "💜", "🖤", "🩶", "🤍", "🤎", "💔", "❤‍🔥", "❤‍🩹", "❣", "💕", "💞", "💓", "💗", "💖", "💘", "💝", "💟", "☮", "✝", "☪", "🕉", "☸", "🪯", "✡", "🔯", "🕎", "☯", "☦", "🛐", "⛎", "♈", "♉", "♊", "♋", "♌", "♍", "♎", "♏", "♐", "♑", "♒", "♓", "🆔", "⚛", "🉑", "☢", "☣", "📴", "📳", "🈶", "🈚", "🈸", "🈺", "🈷", "✴", "🆚", "💮", "🉐", "㊙", "㊗", "🈴", "🈵", "🈹", "🈲", "🅰", "🅱", "🆎", "🆑", "🅾", "🆘", "❌", "⭕", "🛑", "⛔", "📛", "🚫", "💯", "💢", "♨", "🚷", "🚯", "🚳", "🚱", "🔞", "📵", "🚭", "❗", "❕", "❓", "❔", "‼", "⁉", "🔅", "🔆", "〽", "⚠", "🚸", "🔱", "⚜", "🔰", "♻", "✅", "🈯", "💹", "❇", "✳", "❎", "🌐", "💠", "Ⓜ", "🌀", "💤", "🏧", "🚾", "♿", "🅿", "🛗", "🈳", "🈂", "🛂", "🛃", "🛄", "🛅", "🛜", "🚹", "🚺", "🚼", "⚧", "🚻", "🚮", "🎦", "📶", "🈁", "🔣", "ℹ", "🔤", "🔡", "🔠", "🆖", "🆗", "���", "🆒", "🆕", "🆓", "0⃣", "1⃣", "2⃣", "3⃣", "4⃣", "5⃣", "6⃣", "7⃣", "8⃣", "9⃣", "🔟", "🔢", "#⃣", "*⃣", "⏏", "▶", "⏸", "⏯", "⏹", "⏺", "⏭", "⏮", "⏩", "⏪", "⏫", "⏬", "◀", "🔼", "🔽", "➡", "⬅", "⬆", "⬇", "↗", "↘", "↙", "↖", "↕", "↔", "↪", "↩", "⤴", "⤵", "🔀", "🔁", "🔂", "🔄", "🔃", "🎵", "🎶", "➕", "➖", "➗", "✖", "🟰", "♾", "💲", "💱", "™", "©", "®", "👁‍🗨", "🔚", "🔙", "🔛", "🔝", "🔜", "〰", "➰", "➿", "✔", "☑", "🔘", "🔴", "🟠", "🟡", "🟢", "🔵", "🟣", "⚫", "⚪", "🟤", "🔺", "🔻", "🔸", "🔹", "🔶", "🔷", "🔳", "🔲", "▪", "▫", "◾", "◽", "◼", "◻", "🟥", "🟧", "🟨", "🟩", "🟦", "🟪", "⬛", "⬜", "🟫", "🔈", "🔇", "🔉", "🔊", "🔔", "🔕", "📣", "📢", "💬", "💭", "🗯", "♠", "♣", "♥", "♦", "🃏", "🎴", "🀄", "🕐", "🕑", "🕒", "🕓", "🕔", "🕕", "🕖", "🕗", "🕘", "🕙", "🕚", "🕛", "🕜", "🕝", "🕞", "🕟", "🕠", "🕡", "🕢", "🕣", "🕤", "🕥", "🕦", "🕧"
524+
"🩷", "❤", "🧡", "💛", "💚", "🩵", "💙", "💜", "🖤", "🩶", "🤍", "🤎", "💔", "❤‍🔥", "❤‍🩹", "❣", "💕", "💞", "💓", "💗", "💖", "💘", "💝", "💟", "☮", "✝", "☪", "🕉", "☸", "🪯", "✡", "🔯", "🕎", "☯", "☦", "🛐", "⛎", "♈", "♉", "♊", "♋", "♌", "♍", "♎", "♏", "♐", "♑", "♒", "♓", "🆔", "⚛", "🉑", "☢", "☣", "📴", "📳", "🈶", "🈚", "🈸", "🈺", "🈷", "✴", "🆚", "💮", "🉐", "㊙", "㊗", "🈴", "🈵", "🈹", "🈲", "🅰", "🅱", "🆎", "🆑", "🅾", "🆘", "❌", "⭕", "🛑", "⛔", "📛", "🚫", "💯", "💢", "♨", "🚷", "🚯", "🚳", "🚱", "🔞", "📵", "🚭", "❗", "❕", "❓", "❔", "‼", "⁉", "🔅", "🔆", "〽", "⚠", "🚸", "🔱", "⚜", "🔰", "♻", "✅", "🈯", "💹", "❇", "✳", "❎", "🌐", "💠", "Ⓜ", "🌀", "💤", "🏧", "🚾", "♿", "🅿", "🛗", "🈳", "🈂", "🛂", "🛃", "🛄", "🛅", "🛜", "🚹", "🚺", "🚼", "⚧", "🚻", "🚮", "🎦", "📶", "🈁", "🔣", "ℹ", "🔤", "🔡", "🔠", "🆖", "🆗", "🆙", "🆒", "🆕", "🆓", "0⃣", "1⃣", "2⃣", "3⃣", "4⃣", "5⃣", "6⃣", "7⃣", "8⃣", "9⃣", "🔟", "🔢", "#⃣", "*⃣", "⏏", "▶", "⏸", "⏯", "⏹", "⏺", "⏭", "⏮", "⏩", "⏪", "⏫", "⏬", "◀", "🔼", "🔽", "➡", "⬅", "⬆", "⬇", "↗", "↘", "↙", "↖", "↕", "↔", "↪", "↩", "⤴", "⤵", "🔀", "🔁", "🔂", "🔄", "🔃", "🎵", "🎶", "➕", "➖", "➗", "✖", "🟰", "♾", "💲", "💱", "™️", "©", "®", "👁‍🗨", "🔚", "🔙", "🔛", "🔝", "🔜", "〰", "➰", "➿", "✔", "☑", "🔘", "🔴", "🟠", "🟡", "🟢", "🔵", "🟣", "⚫", "⚪", "🟤", "🔺", "🔻", "🔸", "🔹", "🔶", "🔷", "🔳", "🔲", "▪", "▫", "◾", "◽", "◼", "◻", "🟥", "🟧", "🟨", "🟩", "🟦", "🟪", "⬛", "⬜", "🟫", "🔈", "🔇", "🔉", "🔊", "🔔", "🔕", "📣", "📢", "💬", "💭", "🗯", "♠", "♣", "♥", "♦", "🃏", "🎴", "🀄", "🕐", "🕑", "🕒", "🕓", "🕔", "🕕", "🕖", "🕗", "🕘", "🕙", "🕚", "🕛", "🕜", "🕝", "🕞", "🕟", "🕠", "🕡", "🕢", "🕣", "🕤", "🕥", "🕦", "🕧"
525525
},
526526
new String[]{
527527
"🏳", "🏴", "🏴‍☠", "🏁", "🚩", "🏳‍🌈", "🏳‍⚧", "🇺🇳", "🇦🇫", "🇦🇽", "🇦🇱", "🇩🇿", "🇦🇸", "🇦🇩", "🇦🇴", "🇦🇮", "🇦🇶", "🇦🇬", "🇦🇷", "🇦🇲", "🇦🇼", "🇦🇺", "🇦🇹", "🇦🇿", "🇧🇸", "🇧🇭", "🇧🇩", "🇧🇧", "🇧🇾", "🇧🇪", "🇧🇿", "🇧🇯", "🇧🇲", "🇧🇹", "🇧🇴", "🇧🇦", "🇧🇼", "🇧🇷", "🇻🇬", "🇧🇳", "🇧🇬", "🇧🇫", "🇧🇮", "🇰🇭", "🇨🇲", "🇨🇦", "🇮🇨", "🇨🇻", "🇧🇶", "🇰🇾", "🇨🇫", "🇹🇩", "🇮🇴", "🇨🇱", "🇨🇳", "🇨🇽", "🇨🇨", "🇨🇴", "🇰🇲", "🇨🇬", "🇨🇩", "🇨🇰", "🇨🇷", "🇨🇮", "🇭🇷", "🇨🇺", "🇨🇼", "🇨🇾", "🇨🇿", "🇩🇰", "🇩🇯", "🇩🇲", "🇩🇴", "🇪🇨", "🇪🇬", "🇸🇻", "🇬🇶", "🇪🇷", "🇪🇪", "🇸🇿", "🇪🇹", "🇪🇺", "🇫🇰", "🇫🇴", "🇫🇯", "🇫🇮", "🇫🇷", "🇬🇫", "🇵🇫", "🇹🇫", "🇬🇦", "🇬🇲", "🇬🇪", "🇩🇪", "🇬🇭", "🇬🇮", "🇬🇷", "🇬🇱", "🇬🇩", "🇬🇵", "🇬🇺", "🇬🇹", "🇬🇬", "🇬🇳", "🇬🇼", "🇬🇾", "🇭🇹", "🇭🇳", "🇭🇰", "🇭🇺", "🇮🇸", "🇮🇳", "🇮🇩", "🇮🇷", "🇮🇶", "🇮🇪", "🇮🇲", "🇮🇱", "🇮🇹", "🇯🇲", "🇯🇵", "🎌", "🇯🇪", "🇯🇴", "🇰🇿", "🇰🇪", "🇰🇮", "🇽🇰", "🇰🇼", "🇰🇬", "🇱🇦", "🇱🇻", "🇱🇧", "🇱🇸", "🇱🇷", "🇱🇾", "🇱🇮", "🇱🇹", "🇱🇺", "🇲🇴", "🇲🇬", "🇲🇼", "🇲🇾", "🇲🇻", "🇲🇱", "🇲🇹", "🇲🇭", "🇲🇶", "🇲🇷", "🇲🇺", "🇾🇹", "🇲🇽", "🇫🇲", "🇲🇩", "🇲🇨", "🇲🇳", "🇲🇪", "🇲🇸", "🇲🇦", "🇲🇿", "🇲🇲", "🇳🇦", "🇳🇷", "🇳🇵", "🇳🇱", "🇳🇨", "🇳🇿", "🇳🇮", "🇳🇪", "🇳🇬", "🇳🇺", "🇳🇫", "🇰🇵", "🇲🇰", "🇲🇵", "🇳🇴", "🇴🇲", "🇵🇰", "🇵🇼", "🇵🇸", "🇵🇦", "🇵🇬", "🇵🇾", "🇵🇪", "🇵🇭", "🇵🇳", "🇵🇱", "🇵🇹", "🇵🇷", "🇶🇦", "🇷🇪", "🇷🇴", "🇷🇺", "🇷🇼", "🇼🇸", "🇸🇲", "🇸🇹", "🇸🇦", "🇸🇳", "🇷🇸", "🇸🇨", "🇸🇱", "🇸🇬", "🇸🇽", "🇸🇰", "🇸🇮", "🇬🇸", "🇸🇧", "🇸🇴", "🇿🇦", "🇰🇷", "🇸🇸", "🇪🇸", "🇱🇰", "🇧🇱", "🇸🇭", "🇰🇳", "🇱🇨", "🇵🇲", "🇻🇨", "🇸🇩", "🇸🇷", "🇸🇪", "🇨🇭", "🇸🇾", "🇹🇼", "🇹🇯", "🇹🇿", "🇹🇭", "🇹🇱", "🇹🇬", "🇹🇰", "🇹🇴", "🇹🇹", "🇹🇳", "🇹🇷", "🇹🇲", "🇹🇨", "🇹🇻", "🇺🇬", "🇺🇦", "🇦🇪", "🇬🇧", "🏴󠁧󠁢󠁥󠁮󠁧󠁿", "🏴󠁧󠁢󠁳󠁣󠁴󠁿", "🏴󠁧󠁢󠁷󠁬󠁳󠁿", "🇺🇸", "🇺🇾", "🇻🇮", "🇺🇿", "🇻🇺", "🇻🇦", "🇻🇪", "🇻🇳", "🇼🇫", "🇪🇭", "🇾🇪", "🇿🇲", "🇿🇼"

0 commit comments

Comments
 (0)