Commit cca8aed1 authored by Shu Chen's avatar Shu Chen Committed by Commit Bot

Add all M17n raw data with transforms.

Bug: 859432
Change-Id: I427c07ab10df62f0d7377737236afc986d2fafc1
Reviewed-on: https://chromium-review.googlesource.com/c/1309893Reviewed-by: default avatarLeo Zhang <googleo@chromium.org>
Commit-Queue: Shu Chen <shuchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604540}
parent 4a934080
...@@ -18,28 +18,54 @@ source_set("rulebased") { ...@@ -18,28 +18,54 @@ source_set("rulebased") {
sources = [ sources = [
"rulebased/def/ar.cc", "rulebased/def/ar.cc",
"rulebased/def/ar.h", "rulebased/def/ar.h",
"rulebased/def/bn_phone.cc",
"rulebased/def/bn_phone.h",
"rulebased/def/ckb_ar.cc", "rulebased/def/ckb_ar.cc",
"rulebased/def/ckb_ar.h", "rulebased/def/ckb_ar.h",
"rulebased/def/ckb_en.cc", "rulebased/def/ckb_en.cc",
"rulebased/def/ckb_en.h", "rulebased/def/ckb_en.h",
"rulebased/def/deva_phone.cc", "rulebased/def/deva_phone.cc",
"rulebased/def/deva_phone.h", "rulebased/def/deva_phone.h",
"rulebased/def/ethi.cc",
"rulebased/def/ethi.h",
"rulebased/def/fa.cc", "rulebased/def/fa.cc",
"rulebased/def/fa.h", "rulebased/def/fa.h",
"rulebased/def/gu_phone.cc",
"rulebased/def/gu_phone.h",
"rulebased/def/km.cc", "rulebased/def/km.cc",
"rulebased/def/km.h", "rulebased/def/km.h",
"rulebased/def/kn_phone.cc",
"rulebased/def/kn_phone.h",
"rulebased/def/lo.cc", "rulebased/def/lo.cc",
"rulebased/def/lo.h", "rulebased/def/lo.h",
"rulebased/def/ml_phone.cc",
"rulebased/def/ml_phone.h",
"rulebased/def/my.cc",
"rulebased/def/my.h",
"rulebased/def/my_myansan.cc",
"rulebased/def/my_myansan.h",
"rulebased/def/ne_inscript.cc", "rulebased/def/ne_inscript.cc",
"rulebased/def/ne_inscript.h", "rulebased/def/ne_inscript.h",
"rulebased/def/ne_phone.cc",
"rulebased/def/ne_phone.h",
"rulebased/def/ru_phone_aatseel.cc", "rulebased/def/ru_phone_aatseel.cc",
"rulebased/def/ru_phone_aatseel.h", "rulebased/def/ru_phone_aatseel.h",
"rulebased/def/ru_phone_yazhert.cc", "rulebased/def/ru_phone_yazhert.cc",
"rulebased/def/ru_phone_yazhert.h", "rulebased/def/ru_phone_yazhert.h",
"rulebased/def/si.cc",
"rulebased/def/si.h",
"rulebased/def/ta_inscript.cc", "rulebased/def/ta_inscript.cc",
"rulebased/def/ta_inscript.h", "rulebased/def/ta_inscript.h",
"rulebased/def/ta_itrans.cc",
"rulebased/def/ta_itrans.h",
"rulebased/def/ta_phone.cc",
"rulebased/def/ta_phone.h",
"rulebased/def/ta_tamil99.cc",
"rulebased/def/ta_tamil99.h",
"rulebased/def/ta_typewriter.cc", "rulebased/def/ta_typewriter.cc",
"rulebased/def/ta_typewriter.h", "rulebased/def/ta_typewriter.h",
"rulebased/def/te_phone.cc",
"rulebased/def/te_phone.h",
"rulebased/def/th.cc", "rulebased/def/th.cc",
"rulebased/def/th.h", "rulebased/def/th.h",
"rulebased/def/th_pattajoti.cc", "rulebased/def/th_pattajoti.cc",
...@@ -48,6 +74,14 @@ source_set("rulebased") { ...@@ -48,6 +74,14 @@ source_set("rulebased") {
"rulebased/def/th_tis.h", "rulebased/def/th_tis.h",
"rulebased/def/us.cc", "rulebased/def/us.cc",
"rulebased/def/us.h", "rulebased/def/us.h",
"rulebased/def/vi_tcvn.cc",
"rulebased/def/vi_tcvn.h",
"rulebased/def/vi_telex.cc",
"rulebased/def/vi_telex.h",
"rulebased/def/vi_viqr.cc",
"rulebased/def/vi_viqr.h",
"rulebased/def/vi_vni.cc",
"rulebased/def/vi_vni.h",
"rulebased/engine.cc", "rulebased/engine.cc",
"rulebased/engine.h", "rulebased/engine.h",
"rulebased/rules_data.cc", "rulebased/rules_data.cc",
......
This diff is collapsed.
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_BN_PHONE_H_
#define CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_BN_PHONE_H_
namespace bn_phone {
// The id of this IME/keyboard.
extern const char* kId;
// Whether this keyboard layout is a 102 or 101 keyboard.
extern bool kIs102;
// The key mapping definitions under various modifier states.
extern const char** kKeyMap[8];
// The transform rules definition. The string items in the even indexes are
// the regular expressions represent what needs to be transformed, and the
// ones in the odd indexes represent it can transform to what.
extern const char* kTransforms[];
// The length of the transform rules.
extern const unsigned int kTransformsLen;
// The history prune regexp.
extern const char* kHistoryPrune;
} // namespace bn_phone
#endif // CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_BN_PHONE_H_
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
namespace deva_phone { namespace deva_phone {
const char* kId = "deva_phone";
bool kIs102 = false;
const char* kTransforms[] = { const char* kTransforms[] = {
u8"0", u8"0",
u8"\u0966", u8"\u0966",
...@@ -191,9 +193,9 @@ const char* kTransforms[] = { ...@@ -191,9 +193,9 @@ const char* kTransforms[] = {
u8"\u0935", u8"\u0935",
u8"w", u8"w",
u8"\u0935", u8"\u0935",
u8"u8", u8"L",
u8"\u0933", u8"\u0933",
u8"\\.u8", u8"\\.L",
u8"\u0934", u8"\u0934",
u8"l", u8"l",
u8"\u0932", u8"\u0932",
...@@ -309,9 +311,9 @@ const char* kTransforms[] = { ...@@ -309,9 +311,9 @@ const char* kTransforms[] = {
u8"\\1\u094d\u0935", u8"\\1\u094d\u0935",
u8"([\u0915-\u0939\u0958-\u095f])\u001d?w", u8"([\u0915-\u0939\u0958-\u095f])\u001d?w",
u8"\\1\u094d\u0935", u8"\\1\u094d\u0935",
u8"([\u0915-\u0939\u0958-\u095f])\u001d?u8", u8"([\u0915-\u0939\u0958-\u095f])\u001d?L",
u8"\\1\u094d\u0933", u8"\\1\u094d\u0933",
u8"([\u0915-\u0939\u0958-\u095f])\u001d?\\.u8", u8"([\u0915-\u0939\u0958-\u095f])\u001d?\\.L",
u8"\\1\u094d\u0934", u8"\\1\u094d\u0934",
u8"([\u0915-\u0939\u0958-\u095f])\u001d?l", u8"([\u0915-\u0939\u0958-\u095f])\u001d?l",
u8"\\1\u094d\u0932", u8"\\1\u094d\u0932",
...@@ -439,9 +441,9 @@ const char* kTransforms[] = { ...@@ -439,9 +441,9 @@ const char* kTransforms[] = {
u8"\\1\u0935", u8"\\1\u0935",
u8"([\u0915-\u0939\u0958-\u095f])\u001d?aw", u8"([\u0915-\u0939\u0958-\u095f])\u001d?aw",
u8"\\1\u0935", u8"\\1\u0935",
u8"([\u0915-\u0939\u0958-\u095f])\u001d?au8", u8"([\u0915-\u0939\u0958-\u095f])\u001d?aL",
u8"\\1\u0933", u8"\\1\u0933",
u8"([\u0915-\u0939\u0958-\u095f])\u001d?a\\.u8", u8"([\u0915-\u0939\u0958-\u095f])\u001d?a\\.L",
u8"\\1\u0934", u8"\\1\u0934",
u8"([\u0915-\u0939\u0958-\u095f])\u001d?al", u8"([\u0915-\u0939\u0958-\u095f])\u001d?al",
u8"\\1\u0932", u8"\\1\u0932",
...@@ -531,11 +533,7 @@ const char* kTransforms[] = { ...@@ -531,11 +533,7 @@ const char* kTransforms[] = {
u8"\u0965", u8"\u0965",
u8"\u0964\u001d?\\.", u8"\u0964\u001d?\\.",
u8"\u2026"}; u8"\u2026"};
const unsigned int kTransformsLen = base::size(kTransforms); const unsigned int kTransformsLen = base::size(kTransforms);
const char* kHistoryPrune = "n(\\.)?|c|ch|C|nc|nC|nch|\\.|a"; const char* kHistoryPrune = "n(\\.)?|c|ch|C|nc|nC|nch|\\.|a";
const char* kId = "deva_phone";
} // namespace deva_phone } // namespace deva_phone
...@@ -7,18 +7,20 @@ ...@@ -7,18 +7,20 @@
namespace deva_phone { namespace deva_phone {
// The transform rules for the deva_phone IME. // The id of this IME/keyboard.
extern const char* kId;
// The transform rules definition. The string items in the even indexes are
// the regular expressions represent what needs to be transformed, and the
// ones in the odd indexes represent it can transform to what.
extern const char* kTransforms[]; extern const char* kTransforms[];
// The length of the transform rule for the deva_phone IME. // The length of the transform rules.
extern const unsigned int kTransformsLen; extern const unsigned int kTransformsLen;
// The history prune regexp for the deva_phone IME. // The history prune regexp.
extern const char* kHistoryPrune; extern const char* kHistoryPrune;
// The id of the deva_phone IME.
extern const char* kId;
} // namespace deva_phone } // namespace deva_phone
#endif // CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_DEVA_PHONE_H_ #endif // CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_DEVA_PHONE_H_
This diff is collapsed.
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_ETHI_H_
#define CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_ETHI_H_
namespace ethi {
// The id of this IME/keyboard.
extern const char* kId;
// Whether this keyboard layout is a 102 or 101 keyboard.
extern bool kIs102;
// The key mapping definitions under various modifier states.
extern const char** kKeyMap[8];
// The transform rules definition. The string items in the even indexes are
// the regular expressions represent what needs to be transformed, and the
// ones in the odd indexes represent it can transform to what.
extern const char* kTransforms[];
// The length of the transform rules.
extern const unsigned int kTransformsLen;
// The history prune regexp.
extern const char* kHistoryPrune;
} // namespace ethi
#endif // CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_ETHI_H_
This diff is collapsed.
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_GU_PHONE_H_
#define CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_GU_PHONE_H_
namespace gu_phone {
// The id of this IME/keyboard.
extern const char* kId;
// Whether this keyboard layout is a 102 or 101 keyboard.
extern bool kIs102;
// The key mapping definitions under various modifier states.
extern const char** kKeyMap[8];
// The transform rules definition. The string items in the even indexes are
// the regular expressions represent what needs to be transformed, and the
// ones in the odd indexes represent it can transform to what.
extern const char* kTransforms[];
// The length of the transform rules.
extern const unsigned int kTransformsLen;
// The history prune regexp.
extern const char* kHistoryPrune;
} // namespace gu_phone
#endif // CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_GU_PHONE_H_
This diff is collapsed.
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_KN_PHONE_H_
#define CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_KN_PHONE_H_
namespace kn_phone {
// The id of this IME/keyboard.
extern const char* kId;
// The transform rules definition. The string items in the even indexes are
// the regular expressions represent what needs to be transformed, and the
// ones in the odd indexes represent it can transform to what.
extern const char* kTransforms[];
// The length of the transform rules.
extern const unsigned int kTransformsLen;
// The history prune regexp.
extern const char* kHistoryPrune;
} // namespace kn_phone
#endif // CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_KN_PHONE_H_
This diff is collapsed.
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_ML_PHONE_H_
#define CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_ML_PHONE_H_
namespace ml_phone {
// The id of this IME/keyboard.
extern const char* kId;
// The transform rules definition. The string items in the even indexes are
// the regular expressions represent what needs to be transformed, and the
// ones in the odd indexes represent it can transform to what.
extern const char* kTransforms[];
// The length of the transform rules.
extern const unsigned int kTransformsLen;
// The history prune regexp.
extern const char* kHistoryPrune;
} // namespace ml_phone
#endif // CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_ML_PHONE_H_
This diff is collapsed.
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_MY_H_
#define CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_MY_H_
namespace my {
// The id of this IME/keyboard.
extern const char* kId;
// Whether this keyboard layout is a 102 or 101 keyboard.
extern bool kIs102;
// The key mapping definitions under various modifier states.
extern const char** kKeyMap[8];
// The transform rules definition. The string items in the even indexes are
// the regular expressions represent what needs to be transformed, and the
// ones in the odd indexes represent it can transform to what.
extern const char* kTransforms[];
// The length of the transform rules.
extern const unsigned int kTransformsLen;
// The history prune regexp.
extern const char* kHistoryPrune;
} // namespace my
#endif // CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_MY_H_
This diff is collapsed.
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_MY_MYANSAN_H_
#define CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_MY_MYANSAN_H_
namespace my_myansan {
// The id of this IME/keyboard.
extern const char* kId;
// Whether this keyboard layout is a 102 or 101 keyboard.
extern bool kIs102;
// The key mapping definitions under various modifier states.
extern const char** kKeyMap[8];
// The transform rules definition. The string items in the even indexes are
// the regular expressions represent what needs to be transformed, and the
// ones in the odd indexes represent it can transform to what.
extern const char* kTransforms[];
// The length of the transform rules.
extern const unsigned int kTransformsLen;
// The history prune regexp.
extern const char* kHistoryPrune;
} // namespace my_myansan
#endif // CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_MY_MYANSAN_H_
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromeos/services/ime/public/cpp/rulebased/def/ne_phone.h"
namespace ne_phone {
const char* kId = "ne_phone";
bool kIs102 = false;
const char* kNormal[] = {
u8"\u093c", // BackQuote
u8"\u0967", // Digit1
u8"\u0968", // Digit2
u8"\u0969", // Digit3
u8"\u096a", // Digit4
u8"\u096b", // Digit5
u8"\u096c", // Digit6
u8"\u096d", // Digit7
u8"\u096e", // Digit8
u8"\u096f", // Digit9
u8"\u0966", // Digit0
u8"-", // Minus
u8"\u200d", // Equal
u8"\u091f", // KeyQ
u8"\u094c", // KeyW
u8"\u0947", // KeyE
u8"\u0930", // KeyR
u8"\u0924", // KeyT
u8"\u092f", // KeyY
u8"\u0941", // KeyU
u8"\u093f", // KeyI
u8"\u094b", // KeyO
u8"\u092a", // KeyP
u8"\u0907", // BracketLeft
u8"\u090f", // BracketRight
u8"\u0950", // Backslash
u8"\u093e", // KeyA
u8"\u0938", // KeyS
u8"\u0926", // KeyD
u8"\u0909", // KeyF
u8"\u0917", // KeyG
u8"\u0939", // KeyH
u8"\u091c", // KeyJ
u8"\u0915", // KeyK
u8"\u0932", // KeyL
u8";", // Semicolon
u8"'", // Quote
u8"\u0937", // KeyZ
u8"\u0921", // KeyX
u8"\u091a", // KeyC
u8"\u0935", // KeyV
u8"\u092c", // KeyB
u8"\u0928", // KeyN
u8"\u092e", // KeyM
u8",", // Comma
u8"\u0964", // Period
u8"\u094d", // Slash
u8"\u0020", // Space
};
const char* kShift[] = {
u8"\u093d", // BackQuote
u8"!", // Digit1
u8"@", // Digit2
u8"#", // Digit3
u8"\u0930\u0941.", // Digit4
u8"%", // Digit5
u8"^", // Digit6
u8"&", // Digit7
u8"*", // Digit8
u8"(", // Digit9
u8")", // Digit0
u8"_", // Minus
u8"\u200c", // Equal
u8"\u0920", // KeyQ
u8"\u0914", // KeyW
u8"\u0948", // KeyE
u8"\u0943", // KeyR
u8"\u0925", // KeyT
u8"\u091e", // KeyY
u8"\u0942", // KeyU
u8"\u0940", // KeyI
u8"\u0913", // KeyO
u8"\u092b", // KeyP
u8"\u0908", // BracketLeft
u8"\u0910", // BracketRight
u8"\u0903", // Backslash
u8"\u0906", // KeyA
u8"\u0936", // KeyS
u8"\u0927", // KeyD
u8"\u090a", // KeyF
u8"\u0918", // KeyG
u8"\u0905", // KeyH
u8"\u091d", // KeyJ
u8"\u0916", // KeyK
u8"\u0965", // KeyL
u8":", // Semicolon
u8"\"", // Quote
u8"\u090b", // KeyZ
u8"\u0922", // KeyX
u8"\u091b", // KeyC
u8"\u0901", // KeyV
u8"\u092d", // KeyB
u8"\u0923", // KeyN
u8"\u0902", // KeyM
u8"\u0919", // Comma
u8".", // Period
u8"?", // Slash
u8"\u0020", // Space
};
const char* kCapslock[] = {
u8"\u093c", // BackQuote
u8"\u0967", // Digit1
u8"\u0968", // Digit2
u8"\u0969", // Digit3
u8"\u096a", // Digit4
u8"\u096b", // Digit5
u8"\u096c", // Digit6
u8"\u096d", // Digit7
u8"\u096e", // Digit8
u8"\u096f", // Digit9
u8"\u0966", // Digit0
u8"-", // Minus
u8"\u200d", // Equal
u8"\u091f", // KeyQ
u8"\u094c", // KeyW
u8"\u0947", // KeyE
u8"\u0930", // KeyR
u8"\u0924", // KeyT
u8"\u092f", // KeyY
u8"\u0941", // KeyU
u8"\u093f", // KeyI
u8"\u094b", // KeyO
u8"\u092a", // KeyP
u8"\u0907", // BracketLeft
u8"\u090f", // BracketRight
u8"\u0950", // Backslash
u8"\u093e", // KeyA
u8"\u0938", // KeyS
u8"\u0926", // KeyD
u8"\u0909", // KeyF
u8"\u0917", // KeyG
u8"\u0939", // KeyH
u8"\u091c", // KeyJ
u8"\u0915", // KeyK
u8"\u0932", // KeyL
u8";", // Semicolon
u8"'", // Quote
u8"\u0937", // KeyZ
u8"\u0921", // KeyX
u8"\u091a", // KeyC
u8"\u0935", // KeyV
u8"\u092c", // KeyB
u8"\u0928", // KeyN
u8"\u092e", // KeyM
u8",", // Comma
u8"\u0964", // Period
u8"\u094d", // Slash
u8"\u0020", // Space
};
const char* kShiftCapslock[] = {
u8"\u093d", // BackQuote
u8"!", // Digit1
u8"@", // Digit2
u8"#", // Digit3
u8"\u0930\u0941.", // Digit4
u8"%", // Digit5
u8"^", // Digit6
u8"&", // Digit7
u8"*", // Digit8
u8"(", // Digit9
u8")", // Digit0
u8"_", // Minus
u8"\u200c", // Equal
u8"\u0920", // KeyQ
u8"\u0914", // KeyW
u8"\u0948", // KeyE
u8"\u0943", // KeyR
u8"\u0925", // KeyT
u8"\u091e", // KeyY
u8"\u0942", // KeyU
u8"\u0940", // KeyI
u8"\u0913", // KeyO
u8"\u092b", // KeyP
u8"\u0908", // BracketLeft
u8"\u0910", // BracketRight
u8"\u0903", // Backslash
u8"\u0906", // KeyA
u8"\u0936", // KeyS
u8"\u0927", // KeyD
u8"\u090a", // KeyF
u8"\u0918", // KeyG
u8"\u0905", // KeyH
u8"\u091d", // KeyJ
u8"\u0916", // KeyK
u8"\u0965", // KeyL
u8":", // Semicolon
u8"\"", // Quote
u8"\u090b", // KeyZ
u8"\u0922", // KeyX
u8"\u091b", // KeyC
u8"\u0901", // KeyV
u8"\u092d", // KeyB
u8"\u0923", // KeyN
u8"\u0902", // KeyM
u8"\u0919", // Comma
u8".", // Period
u8"?", // Slash
u8"\u0020", // Space
};
const char** kKeyMap[8] = {kNormal, kShift, kNormal,
kShift, kCapslock, kShiftCapslock,
kCapslock, kShiftCapslock};
} // namespace ne_phone
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_NE_PHONE_H_
#define CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_NE_PHONE_H_
namespace ne_phone {
// The id of this IME/keyboard.
extern const char* kId;
// Whether this keyboard layout is a 102 or 101 keyboard.
extern bool kIs102;
// The key mapping definitions under various modifier states.
extern const char** kKeyMap[8];
} // namespace ne_phone
#endif // CHROMEOS_SERVICES_IME_PUBLIC_CPP_RULEBASED_DEF_NE_PHONE_H_
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment