Skip to content

Commit 4283cae

Browse files
committed
drop local v3/v4
1 parent 67618fc commit 4283cae

67 files changed

Lines changed: 40 additions & 634 deletions

File tree

Some content is hidden

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

PaddleSharp.sln

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{CA2A775C
3535
EndProject
3636
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sdcb.PaddleOCR.Models.Online", "src\Sdcb.PaddleOCR.Models.Online\Sdcb.PaddleOCR.Models.Online.csproj", "{E996BEA0-C552-4A31-8DC2-DED4B97648FF}"
3737
EndProject
38-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sdcb.PaddleOCR.Models.LocalV3", "src\Sdcb.PaddleOCR.Models.LocalV3\Sdcb.PaddleOCR.Models.LocalV3.csproj", "{06475814-73FA-4C45-BCD0-4F64849A5612}"
39-
EndProject
4038
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sdcb.RotationDetector", "src\Sdcb.RotationDetector\Sdcb.RotationDetector.csproj", "{69BF0B03-E1FE-4CF8-97A5-40E32B758E1A}"
4139
EndProject
4240
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sdcb.RotationDetector.Tests", "tests\Sdcb.RotationDetector.Tests\Sdcb.RotationDetector.Tests.csproj", "{6EE2E06A-0C0D-4BAE-8830-1E43D8B5FD3A}"
@@ -56,8 +54,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sdcb.Paddle2Onnx", "src\Sdc
5654
EndProject
5755
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sdcb.Paddle2Onnx.Tests", "tests\Sdcb.Paddle2Onnx.Tests\Sdcb.Paddle2Onnx.Tests.csproj", "{0432D4F5-1F7E-4A6E-A6DC-4A04C0F8E497}"
5856
EndProject
59-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sdcb.PaddleOCR.Models.LocalV4", "src\Sdcb.PaddleOCR.Models.LocalV4\Sdcb.PaddleOCR.Models.LocalV4.csproj", "{604827F0-00CB-48DC-AD4E-06AE386CD96A}"
60-
EndProject
6157
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sdcb.PaddleOCR.Models.Shared", "src\Sdcb.PaddleOCR.Models.Shared\Sdcb.PaddleOCR.Models.Shared.csproj", "{EC79D45E-85D8-40E2-9F95-78AB40977770}"
6258
EndProject
6359
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sdcb.PaddleOCR.Models.Local", "src\Sdcb.PaddleOCR.Models.Local\Sdcb.PaddleOCR.Models.Local.csproj", "{0172BD09-B617-4FF6-8221-883029AD4877}"
@@ -100,10 +96,6 @@ Global
10096
{E996BEA0-C552-4A31-8DC2-DED4B97648FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
10197
{E996BEA0-C552-4A31-8DC2-DED4B97648FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
10298
{E996BEA0-C552-4A31-8DC2-DED4B97648FF}.Release|Any CPU.Build.0 = Release|Any CPU
103-
{06475814-73FA-4C45-BCD0-4F64849A5612}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
104-
{06475814-73FA-4C45-BCD0-4F64849A5612}.Debug|Any CPU.Build.0 = Debug|Any CPU
105-
{06475814-73FA-4C45-BCD0-4F64849A5612}.Release|Any CPU.ActiveCfg = Release|Any CPU
106-
{06475814-73FA-4C45-BCD0-4F64849A5612}.Release|Any CPU.Build.0 = Release|Any CPU
10799
{69BF0B03-E1FE-4CF8-97A5-40E32B758E1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
108100
{69BF0B03-E1FE-4CF8-97A5-40E32B758E1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
109101
{69BF0B03-E1FE-4CF8-97A5-40E32B758E1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -124,10 +116,6 @@ Global
124116
{0432D4F5-1F7E-4A6E-A6DC-4A04C0F8E497}.Debug|Any CPU.Build.0 = Debug|Any CPU
125117
{0432D4F5-1F7E-4A6E-A6DC-4A04C0F8E497}.Release|Any CPU.ActiveCfg = Release|Any CPU
126118
{0432D4F5-1F7E-4A6E-A6DC-4A04C0F8E497}.Release|Any CPU.Build.0 = Release|Any CPU
127-
{604827F0-00CB-48DC-AD4E-06AE386CD96A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
128-
{604827F0-00CB-48DC-AD4E-06AE386CD96A}.Debug|Any CPU.Build.0 = Debug|Any CPU
129-
{604827F0-00CB-48DC-AD4E-06AE386CD96A}.Release|Any CPU.ActiveCfg = Release|Any CPU
130-
{604827F0-00CB-48DC-AD4E-06AE386CD96A}.Release|Any CPU.Build.0 = Release|Any CPU
131119
{EC79D45E-85D8-40E2-9F95-78AB40977770}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
132120
{EC79D45E-85D8-40E2-9F95-78AB40977770}.Debug|Any CPU.Build.0 = Debug|Any CPU
133121
{EC79D45E-85D8-40E2-9F95-78AB40977770}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -170,14 +158,12 @@ Global
170158
{3C7FF86D-81F2-4675-B41E-B3B36E744F62} = {B3A59318-2F90-40D4-B995-7D56EB8C50F0}
171159
{4FA38A15-304E-4AFA-85DC-6C5DD87C4DFD} = {CA2A775C-763B-4B69-AC5B-4F90DD668E4A}
172160
{E996BEA0-C552-4A31-8DC2-DED4B97648FF} = {B3A59318-2F90-40D4-B995-7D56EB8C50F0}
173-
{06475814-73FA-4C45-BCD0-4F64849A5612} = {B3A59318-2F90-40D4-B995-7D56EB8C50F0}
174161
{69BF0B03-E1FE-4CF8-97A5-40E32B758E1A} = {B3A59318-2F90-40D4-B995-7D56EB8C50F0}
175162
{6EE2E06A-0C0D-4BAE-8830-1E43D8B5FD3A} = {CA2A775C-763B-4B69-AC5B-4F90DD668E4A}
176163
{026E4A25-94D0-4143-A1CD-39FF2F1E24A6} = {CCC0070E-E444-42B2-84F7-EE999ADA0750}
177164
{F0962D28-49F5-4A50-9CB4-8F25E0436230} = {CA2A775C-763B-4B69-AC5B-4F90DD668E4A}
178165
{1F5298BA-FB77-4863-A457-51A1659D76E6} = {B3A59318-2F90-40D4-B995-7D56EB8C50F0}
179166
{0432D4F5-1F7E-4A6E-A6DC-4A04C0F8E497} = {CA2A775C-763B-4B69-AC5B-4F90DD668E4A}
180-
{604827F0-00CB-48DC-AD4E-06AE386CD96A} = {B3A59318-2F90-40D4-B995-7D56EB8C50F0}
181167
{EC79D45E-85D8-40E2-9F95-78AB40977770} = {B3A59318-2F90-40D4-B995-7D56EB8C50F0}
182168
{0172BD09-B617-4FF6-8221-883029AD4877} = {B3A59318-2F90-40D4-B995-7D56EB8C50F0}
183169
{5756186D-613D-4656-B21D-822AB4DD9F8F} = {B3A59318-2F90-40D4-B995-7D56EB8C50F0}

build/00-common.linq

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@ static ProjectVersion[] Projects = new[]
2929
new ProjectVersion("Sdcb.PaddleOCR.Models.Online", "3.0.1"),
3030
new ProjectVersion("Sdcb.PaddleOCR.Models.Local", "3.0.1"),
3131
//new ProjectVersion("Sdcb.PaddleOCR.Models.Shared", "2.7.0.1"),
32-
//new ProjectVersion("Sdcb.PaddleOCR.Models.LocalV3", "2.7.0.1"),
33-
//new ProjectVersion("Sdcb.PaddleOCR.Models.LocalV4", "2.7.0.1"),
3432
//new ProjectVersion("Sdcb.PaddleOCR.Models.LocalV5", "3.0.0"),
3533
new ProjectVersion("Sdcb.PaddleDetection", "2.3.3.1"),
3634
new ProjectVersion("Sdcb.RotationDetector", "1.0.4"),

docs/ocr.md

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,20 @@
66
| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
77
| Sdcb.PaddleOCR | [![NuGet](https://img.shields.io/nuget/v/Sdcb.PaddleOCR.svg)](https://nuget.org/packages/Sdcb.PaddleOCR) | PaddleOCR library(based on Sdcb.PaddleInference) ⚙️ |
88
| Sdcb.PaddleOCR.Models.Online | [![NuGet](https://img.shields.io/nuget/v/Sdcb.PaddleOCR.Models.Online.svg)](https://nuget.org/packages/Sdcb.PaddleOCR.Models.Online) | Online PaddleOCR models, will download when first using 🌐 |
9-
| Sdcb.PaddleOCR.Models.Local | [![NuGet](https://img.shields.io/nuget/v/Sdcb.PaddleOCR.Models.Local.svg)](https://nuget.org/packages/Sdcb.PaddleOCR.Models.Local) | Local models, relies on Shared, LocalV3 and LocalV4 models 🏠 |
9+
| Sdcb.PaddleOCR.Models.Local | [![NuGet](https://img.shields.io/nuget/v/Sdcb.PaddleOCR.Models.Local.svg)](https://nuget.org/packages/Sdcb.PaddleOCR.Models.Local) | Recommended local PaddleOCR V5 models 🏠 |
10+
11+
## Local package note
12+
13+
`Sdcb.PaddleOCR.Models.Local` now exposes the recommended local V5 models only.
14+
15+
- Install `Sdcb.PaddleOCR.Models.Local` when you want the default local OCR experience.
16+
- This package only contains the maintained local V5 entry points.
1017

1118
## Language supports
1219

1320
Please refer to https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.5/doc/doc_en/models_list_en.md to check language support models.
1421

15-
Just replace the `.ChineseV3` in demo code with your speicific language, then you can use the language.
22+
Just replace the `.ChineseV5` in demo code with your speicific language, then you can use the language.
1623

1724
## Usage
1825

@@ -28,7 +35,7 @@ Just replace the `.ChineseV3` in demo code with your speicific language, then yo
2835

2936
2. Using following C# code to get result:
3037
```csharp
31-
FullOcrModel model = LocalFullModels.ChineseV3;
38+
FullOcrModel model = LocalFullModels.ChineseV5;
3239

3340
byte[] sampleImageData;
3441
string sampleImageUrl = @"https://www.tp-link.com.cn/content/images2017/gallery/4288_1920.jpg";
@@ -133,7 +140,7 @@ using (HttpClient http = new HttpClient())
133140
sampleImageData = await http.GetByteArrayAsync(sampleImageUrl);
134141
}
135142

136-
using (PaddleOcrDetector detector = new PaddleOcrDetector(LocalDetectionModel.ChineseV3, PaddleDevice.Mkldnn()))
143+
using (PaddleOcrDetector detector = new PaddleOcrDetector(LocalDetectionModel.ChineseV5, PaddleDevice.Mkldnn()))
137144
using (Mat src = Cv2.ImDecode(sampleImageData, ImreadModes.Color))
138145
{
139146
RotatedRect[] rects = detector.Run(src);
@@ -160,7 +167,7 @@ using Mat src = Cv2.ImRead(Path.Combine(Environment.GetFolderPath(Environment.Sp
160167
TableDetectionResult tableResult = tableRec.Run(src);
161168

162169
// Normal OCR
163-
using PaddleOcrAll all = new(LocalFullModels.ChineseV3);
170+
using PaddleOcrAll all = new(LocalFullModels.ChineseV5);
164171
all.Detector.UnclipRatio = 1.2f;
165172
PaddleOcrResult ocrResult = all.Run(src);
166173

@@ -225,7 +232,7 @@ In your service builder code, register a QueuedPaddleOcrAll Singleton:
225232
builder.Services.AddSingleton(s =>
226233
{
227234
Action<PaddleConfig> device = builder.Configuration["PaddleDevice"] == "GPU" ? PaddleDevice.Gpu() : PaddleDevice.Mkldnn();
228-
return new QueuedPaddleOcrAll(() => new PaddleOcrAll(LocalFullModels.ChineseV3, device)
235+
return new QueuedPaddleOcrAll(() => new PaddleOcrAll(LocalFullModels.ChineseV5, device)
229236
{
230237
Enable180Classification = true,
231238
AllowRotateDetection = true,

src/Sdcb.PaddleOCR.Models.Local/Details/Utils.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ public static PaddleConfig LocalModel(string key, ModelVersion version)
1919
Type rootType = version switch
2020
{
2121
ModelVersion.V2 => typeof(LocalFullModels),
22-
ModelVersion.V3 => typeof(LocalV3.KnownModels),
23-
ModelVersion.V4 => typeof(LocalV4.KnownModels),
2422
ModelVersion.V5 => typeof(LocalV5.KnownModels),
2523
_ => throw new NotImplementedException()
2624
};

src/Sdcb.PaddleOCR.Models.Local/LocalDetectionModel.cs

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -31,41 +31,11 @@ public LocalDetectionModel(string name, ModelVersion version) : base(version)
3131
/// </summary>
3232
public static LocalDetectionModel ChineseV5 => new("mobile-zh-det", ModelVersion.V5);
3333

34-
/// <summary>
35-
/// Chinese detection v4 model used by PaddleOCR to detect text from an image, supporting multiple languages(Size: 4.6M).
36-
/// </summary>
37-
public static LocalDetectionModel ChineseV4 => new("ch_PP-OCRv4_det", ModelVersion.V4);
38-
39-
// delete because too large (>100MB)
40-
///// <summary>
41-
///// Chinese detection v4 server inference model used by PaddleOCR to detect text from an image, supporting multiple languages (Size: 110M).
42-
///// </summary>
43-
//public static LocalDetectionModel ChineseServerV4 => new("detv4_teacher_inference", ModelVersion.V4);
44-
45-
/// <summary>
46-
/// Original lightweight model, supporting Chinese, English, multilingual text detection(Size: 3.8M).
47-
/// </summary>
48-
public static LocalDetectionModel ChineseV3 => new("ch_PP-OCRv3_det", ModelVersion.V3);
49-
50-
/// <summary>
51-
/// Original lightweight detection model, supporting English(Size: 3.8M).
52-
/// </summary>
53-
public static LocalDetectionModel EnglishV3 => new("en_PP-OCRv3_det", ModelVersion.V3);
54-
55-
/// <summary>
56-
/// Original lightweight detection model, supporting multiple languages(Size: 3.8M).
57-
/// </summary>
58-
public static LocalDetectionModel MultiLanguageV3 => new("ml_PP-OCRv3_det", ModelVersion.V3);
59-
6034
/// <summary>
6135
/// Gets an array of all the available <see cref="LocalDetectionModel"/> objects.
6236
/// </summary>
6337
public static LocalDetectionModel[] All => new[]
6438
{
65-
ChineseV4,
66-
//ChineseServerV4,
67-
ChineseV3,
68-
EnglishV3,
69-
MultiLanguageV3,
39+
ChineseV5,
7040
};
7141
}
Lines changed: 1 addition & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
11
namespace Sdcb.PaddleOCR.Models.Local;
22

33
/// <summary>
4-
/// Provides a collection of all available OCR models for PaddleOCR in local version 3.
4+
/// Provides a collection of the recommended local OCR models.
55
/// </summary>
66
public static class LocalFullModels
77
{
8-
// delete because too large(>100MB)
9-
///// <summary>
10-
///// Chinese server v4, also support English and digits.
11-
///// </summary>
12-
//public static FullOcrModel ChineseServerV4 => new(LocalDetectionModel.ChineseServerV4, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.ChineseV4);
13-
148
/// <summary>
159
/// Chinise v5 version
1610
/// </summary>
@@ -71,111 +65,6 @@ public static class LocalFullModels
7165
/// </summary>
7266
public static FullOcrModel TamilV5 => new(LocalDetectionModel.ChineseV5, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.TamilV5);
7367

74-
/// <summary>
75-
/// Chinese v4, also support English and digits.
76-
/// </summary>
77-
public static FullOcrModel ChineseV4 => new(LocalDetectionModel.ChineseV4, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.ChineseV4);
78-
79-
/// <summary>
80-
/// English v4 version.
81-
/// </summary>
82-
public static FullOcrModel EnglishV4 => new(LocalDetectionModel.ChineseV4, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.EnglishV4);
83-
84-
/// <summary>
85-
/// The Korean V4 version.
86-
/// </summary>
87-
public static FullOcrModel KoreanV4 => new(LocalDetectionModel.ChineseV4, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.KoreanV4);
88-
89-
/// <summary>
90-
/// The Japan V4 version.
91-
/// </summary>
92-
public static FullOcrModel JapanV4 => new(LocalDetectionModel.ChineseV4, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.JapanV4);
93-
94-
/// <summary>
95-
/// The Telugu V4 version.
96-
/// </summary>
97-
public static FullOcrModel TeluguV4 => new(LocalDetectionModel.ChineseV4, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.TeluguV4);
98-
99-
/// <summary>
100-
/// The Kannada V4 version.
101-
/// </summary>
102-
public static FullOcrModel KannadaV4 => new(LocalDetectionModel.ChineseV4, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.KannadaV4);
103-
104-
/// <summary>
105-
/// The Tamil V4 version.
106-
/// </summary>
107-
public static FullOcrModel TamilV4 => new(LocalDetectionModel.ChineseV4, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.TamilV4);
108-
109-
/// <summary>
110-
/// The Arabic V4 version.
111-
/// </summary>
112-
public static FullOcrModel ArabicV4 => new(LocalDetectionModel.ChineseV4, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.ArabicV4);
113-
114-
/// <summary>
115-
/// The Devanagari V4 version.
116-
/// </summary>
117-
public static FullOcrModel DevanagariV4 => new(LocalDetectionModel.ChineseV4, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.DevanagariV4);
118-
119-
/// <summary>
120-
/// Provides the OCR model for Chinese language.
121-
/// </summary>
122-
public static FullOcrModel ChineseV3 => new(LocalDetectionModel.ChineseV3, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.ChineseV3);
123-
124-
/// <summary>
125-
/// Provides the OCR model for English language.
126-
/// </summary>
127-
public static FullOcrModel EnglishV3 => new(LocalDetectionModel.EnglishV3, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.EnglishV3);
128-
129-
/// <summary>
130-
/// Provides the OCR model for Korean language.
131-
/// </summary>
132-
public static FullOcrModel KoreanV3 => new(LocalDetectionModel.MultiLanguageV3, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.KoreanV3);
133-
134-
/// <summary>
135-
/// Provides the OCR model for Japanese language.
136-
/// </summary>
137-
public static FullOcrModel JapanV3 => new(LocalDetectionModel.MultiLanguageV3, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.JapanV3);
138-
139-
/// <summary>
140-
/// Provides the OCR model for Traditional Chinese language.
141-
/// </summary>
142-
public static FullOcrModel TraditionalChineseV3 => new(LocalDetectionModel.ChineseV3, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.TraditionalChineseV3);
143-
144-
/// <summary>
145-
/// Provides the OCR model for Telugu language.
146-
/// </summary>
147-
public static FullOcrModel TeluguV3 => new(LocalDetectionModel.MultiLanguageV3, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.TeluguV3);
148-
149-
/// <summary>
150-
/// Provides the OCR model for Kannada language.
151-
/// </summary>
152-
public static FullOcrModel KannadaV3 => new(LocalDetectionModel.MultiLanguageV3, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.KannadaV3);
153-
154-
/// <summary>
155-
/// Provides the OCR model for Tamil language.
156-
/// </summary>
157-
public static FullOcrModel TamilV3 => new(LocalDetectionModel.MultiLanguageV3, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.TamilV3);
158-
159-
/// <summary>
160-
/// Provides the OCR model for Latin language.
161-
/// </summary>
162-
public static FullOcrModel LatinV3 => new(LocalDetectionModel.MultiLanguageV3, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.LatinV3);
163-
164-
/// <summary>
165-
/// Provides the OCR model for Arabic language.
166-
/// </summary>
167-
public static FullOcrModel ArabicV3 => new(LocalDetectionModel.MultiLanguageV3, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.ArabicV3);
168-
169-
/// <summary>
170-
/// Provides the OCR model for Cyrillic language.
171-
/// </summary>
172-
public static FullOcrModel CyrillicV3 => new(LocalDetectionModel.MultiLanguageV3, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.CyrillicV3);
173-
174-
/// <summary>
175-
/// Provides the OCR model for Devanagari language.
176-
/// </summary>
177-
public static FullOcrModel DevanagariV3 => new(LocalDetectionModel.MultiLanguageV3, LocalClassificationModel.ChineseMobileV2, LocalRecognizationModel.DevanagariV3);
178-
17968
/// <summary>
18069
/// Provides an array of all available OCR models for PaddleOCR
18170
/// </summary>
@@ -193,26 +82,5 @@ public static class LocalFullModels
19382
DevanagariV5,
19483
TeluguV5,
19584
TamilV5,
196-
ChineseV4,
197-
EnglishV4,
198-
DevanagariV4,
199-
ArabicV4,
200-
TamilV4,
201-
KannadaV4,
202-
TeluguV4,
203-
JapanV4,
204-
KoreanV4,
205-
ChineseV3,
206-
EnglishV3,
207-
KoreanV3,
208-
JapanV3,
209-
TraditionalChineseV3,
210-
TeluguV3,
211-
KannadaV3,
212-
TamilV3,
213-
LatinV3,
214-
ArabicV3,
215-
CyrillicV3,
216-
DevanagariV3,
21785
};
21886
}

0 commit comments

Comments
 (0)