aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/inputpanel/data/inputpanel
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/inputpanel/data/inputpanel')
-rw-r--r--tests/auto/inputpanel/data/inputpanel/handwriting.js7
-rw-r--r--tests/auto/inputpanel/data/inputpanel/handwritinginputpanel.qml9
-rw-r--r--tests/auto/inputpanel/data/inputpanel/inputpanel.qml200
-rw-r--r--tests/auto/inputpanel/data/inputpanel/unipen_data_korean.js854
-rw-r--r--tests/auto/inputpanel/data/inputpanel/unipen_data_vietnamese.js1930
5 files changed, 2554 insertions, 446 deletions
diff --git a/tests/auto/inputpanel/data/inputpanel/handwriting.js b/tests/auto/inputpanel/data/inputpanel/handwriting.js
index a4c4ec1a..0721f141 100644
--- a/tests/auto/inputpanel/data/inputpanel/handwriting.js
+++ b/tests/auto/inputpanel/data/inputpanel/handwriting.js
@@ -38,14 +38,17 @@
.import "unipen_data_cyrillic.js" as UnipenDataCyrillic
.import "unipen_data_arabic.js" as UnipenDataArabic
.import "unipen_data_hebrew.js" as UnipenDataHebrew
+.import "unipen_data_vietnamese.js" as UnipenDataVietnamese
-function emulate(testcase, hwrInputArea, ch, instant) {
+function emulate(testcase, hwrInputArea, ch, instant, locale) {
var chKey = (((typeof ch == "number") ? ch : ch.charCodeAt(0)) + 0x100000000).toString(16).substr(1)
while (chKey.length > 4 && chKey[0] === '0')
chKey = chKey.substring(1)
chKey = "0x" + chKey
var unipenData
- if (UnipenData.unipenData.hasOwnProperty(chKey))
+ if (locale === "vi_VN" && UnipenDataVietnamese.unipenData.hasOwnProperty(chKey))
+ unipenData = UnipenDataVietnamese
+ else if (UnipenData.unipenData.hasOwnProperty(chKey))
unipenData = UnipenData
else if (UnipenDataSimpChinese.unipenData.hasOwnProperty(chKey))
unipenData = UnipenDataSimpChinese
diff --git a/tests/auto/inputpanel/data/inputpanel/handwritinginputpanel.qml b/tests/auto/inputpanel/data/inputpanel/handwritinginputpanel.qml
index 692116d0..aa7ae714 100644
--- a/tests/auto/inputpanel/data/inputpanel/handwritinginputpanel.qml
+++ b/tests/auto/inputpanel/data/inputpanel/handwritinginputpanel.qml
@@ -38,6 +38,7 @@ HandwritingInputPanel {
z: 99
property var testcase
+ readonly property var inputMethod: InputContext.inputEngine.inputMethod
readonly property var wordCandidatePopupList: Utils.findChildByProperty(handwritingInputPanel, "objectName", "wordCandidatePopupList", null)
anchors.fill: parent
@@ -129,7 +130,15 @@ HandwritingInputPanel {
console.warn("Cannot produce the symbol '%1' in full screen handwriting mode".arg(ch))
return false
}
+ if (isSuperimposedHandwriting())
+ return true;
inputMethodResultSpy.wait(3000)
return inputMethodResultSpy.count > 0
}
+
+ function isSuperimposedHandwriting() {
+ if (!available)
+ return false
+ return inputMethod != null && inputMethod.hasOwnProperty("superimposed") && inputMethod.superimposed;
+ }
}
diff --git a/tests/auto/inputpanel/data/inputpanel/inputpanel.qml b/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
index 18ca94b4..79526c91 100644
--- a/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
+++ b/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
@@ -47,8 +47,8 @@ InputPanel {
readonly property int cursorPosition: InputContext.cursorPosition
readonly property string preeditText: InputContext.preeditText
readonly property string surroundingText: InputContext.surroundingText
- readonly property bool autoCapitalizationEnabled: InputContext.shiftHandler.autoCapitalizationEnabled
- readonly property bool toggleShiftEnabled: InputContext.shiftHandler.toggleShiftEnabled
+ readonly property bool autoCapitalizationEnabled: InputContext.priv.shiftHandler.autoCapitalizationEnabled
+ readonly property bool toggleShiftEnabled: InputContext.priv.shiftHandler.toggleShiftEnabled
readonly property string locale: keyboard.locale
readonly property string defaultLocale: VirtualKeyboardSettings.locale
readonly property var availableLocales: VirtualKeyboardSettings.availableLocales
@@ -67,6 +67,7 @@ InputPanel {
naviationHighlight.widthAnimation.running ||
naviationHighlight.heightAnimation.running
readonly property var wordCandidateView: Utils.findChildByProperty(keyboard, "objectName", "wordCandidateView", null)
+ readonly property var wordCandidateContextMenu: Utils.findChildByProperty(keyboard, "objectName", "wordCandidateContextMenu", null)
readonly property var shadowInputControl: Utils.findChildByProperty(keyboard, "objectName", "shadowInputControl", null)
readonly property var shadowInput: Utils.findChildByProperty(keyboard, "objectName", "shadowInput", null)
readonly property var selectionControl: Utils.findChildByProperty(inputPanel, "objectName", "selectionControl", null)
@@ -96,6 +97,8 @@ InputPanel {
signal inputMethodResult(var text)
+ LayoutMirroring.childrenInherit: true
+
Connections {
target: InputContext
onPreeditTextChanged: if (InputContext.preeditText.length > 0) inputMethodResult(InputContext.preeditText)
@@ -185,9 +188,15 @@ InputPanel {
}
SignalSpy {
+ id: wordCandidateContextMenuActiveSpy
+ target: wordCandidateContextMenu
+ signalName: "onActiveChanged"
+ }
+
+ SignalSpy {
id: shiftStateSpy
target: InputContext
- signalName: "onShiftChanged"
+ signalName: "onShiftActiveChanged"
}
SignalSpy {
@@ -258,39 +267,39 @@ InputPanel {
function mapInputMode(inputModeName) {
if (inputModeName === "Latin")
- return InputEngine.Latin
+ return InputEngine.InputMode.Latin
else if (inputModeName === "Numeric")
- return InputEngine.Numeric
+ return InputEngine.InputMode.Numeric
else if (inputModeName === "Dialable")
- return InputEngine.Dialable
+ return InputEngine.InputMode.Dialable
else if (inputModeName === "Pinyin")
- return InputEngine.Pinyin
+ return InputEngine.InputMode.Pinyin
else if (inputModeName === "Cangjie")
- return InputEngine.Cangjie
+ return InputEngine.InputMode.Cangjie
else if (inputModeName === "Zhuyin")
- return InputEngine.Zhuyin
+ return InputEngine.InputMode.Zhuyin
else if (inputModeName === "Hangul")
- return InputEngine.Hangul
+ return InputEngine.InputMode.Hangul
else if (inputModeName === "Hiragana")
- return InputEngine.Hiragana
+ return InputEngine.InputMode.Hiragana
else if (inputModeName === "Katakana")
- return InputEngine.Katakana
+ return InputEngine.InputMode.Katakana
else if (inputModeName === "FullwidthLatin")
- return InputEngine.FullwidthLatin
+ return InputEngine.InputMode.FullwidthLatin
else if (inputModeName === "Greek")
- return InputEngine.Greek
+ return InputEngine.InputMode.Greek
else if (inputModeName === "Cyrillic")
- return InputEngine.Cyrillic
+ return InputEngine.InputMode.Cyrillic
else if (inputModeName === "Arabic")
- return InputEngine.Arabic
+ return InputEngine.InputMode.Arabic
else if (inputModeName === "Hebrew")
- return InputEngine.Hebrew
+ return InputEngine.InputMode.Hebrew
else if (inputModeName === "ChineseHandwriting")
- return InputEngine.ChineseHandwriting
+ return InputEngine.InputMode.ChineseHandwriting
else if (inputModeName === "JapaneseHandwriting")
- return InputEngine.JapaneseHandwriting
+ return InputEngine.InputMode.JapaneseHandwriting
else if (inputModeName === "KoreanHandwriting")
- return InputEngine.KoreanHandwriting
+ return InputEngine.InputMode.KoreanHandwriting
else
return -1
}
@@ -307,10 +316,83 @@ InputPanel {
return true
}
+ function testPublicEnums() {
+ // Scoped
+ testcase.verify(InputEngine.TextCase.Lower !== undefined)
+ testcase.verify(InputEngine.TextCase.Upper !== undefined)
+ testcase.verify(InputEngine.InputMode.Latin !== undefined)
+ testcase.verify(InputEngine.InputMode.Numeric !== undefined)
+ testcase.verify(InputEngine.InputMode.Dialable !== undefined)
+ testcase.verify(InputEngine.InputMode.Pinyin !== undefined)
+ testcase.verify(InputEngine.InputMode.Cangjie !== undefined)
+ testcase.verify(InputEngine.InputMode.Zhuyin !== undefined)
+ testcase.verify(InputEngine.InputMode.Hangul !== undefined)
+ testcase.verify(InputEngine.InputMode.Hiragana !== undefined)
+ testcase.verify(InputEngine.InputMode.Katakana !== undefined)
+ testcase.verify(InputEngine.InputMode.FullwidthLatin !== undefined)
+ testcase.verify(InputEngine.InputMode.Greek !== undefined)
+ testcase.verify(InputEngine.InputMode.Cyrillic !== undefined)
+ testcase.verify(InputEngine.InputMode.Arabic !== undefined)
+ testcase.verify(InputEngine.InputMode.Hebrew !== undefined)
+ testcase.verify(InputEngine.InputMode.ChineseHandwriting !== undefined)
+ testcase.verify(InputEngine.InputMode.JapaneseHandwriting !== undefined)
+ testcase.verify(InputEngine.InputMode.KoreanHandwriting !== undefined)
+ testcase.verify(InputEngine.PatternRecognitionMode.None !== undefined)
+ testcase.verify(InputEngine.PatternRecognitionMode.PatternRecognitionDisabled !== undefined)
+ testcase.verify(InputEngine.PatternRecognitionMode.Handwriting !== undefined)
+ testcase.verify(InputEngine.PatternRecognitionMode.HandwritingRecoginition !== undefined)
+ testcase.verify(InputEngine.ReselectFlag.WordBeforeCursor !== undefined)
+ testcase.verify(InputEngine.ReselectFlag.WordAfterCursor !== undefined)
+ testcase.verify(InputEngine.ReselectFlag.WordAtCursor !== undefined)
+ testcase.verify(SelectionListModel.Type.WordCandidateList !== undefined)
+ testcase.verify(SelectionListModel.Role.Display !== undefined)
+ testcase.verify(SelectionListModel.Role.WordCompletionLength !== undefined)
+ testcase.verify(SelectionListModel.Role.Dictionary !== undefined)
+ testcase.verify(SelectionListModel.DictionaryType.Default !== undefined)
+ testcase.verify(SelectionListModel.DictionaryType.User !== undefined)
+ // Unscoped
+ testcase.verify(InputEngine.Lower !== undefined)
+ testcase.verify(InputEngine.Upper !== undefined)
+ testcase.verify(InputEngine.Latin !== undefined)
+ testcase.verify(InputEngine.Numeric !== undefined)
+ testcase.verify(InputEngine.Dialable !== undefined)
+ testcase.verify(InputEngine.Pinyin !== undefined)
+ testcase.verify(InputEngine.Cangjie !== undefined)
+ testcase.verify(InputEngine.Zhuyin !== undefined)
+ testcase.verify(InputEngine.Hangul !== undefined)
+ testcase.verify(InputEngine.Hiragana !== undefined)
+ testcase.verify(InputEngine.Katakana !== undefined)
+ testcase.verify(InputEngine.FullwidthLatin !== undefined)
+ testcase.verify(InputEngine.Greek !== undefined)
+ testcase.verify(InputEngine.Cyrillic !== undefined)
+ testcase.verify(InputEngine.Arabic !== undefined)
+ testcase.verify(InputEngine.Hebrew !== undefined)
+ testcase.verify(InputEngine.ChineseHandwriting !== undefined)
+ testcase.verify(InputEngine.JapaneseHandwriting !== undefined)
+ testcase.verify(InputEngine.KoreanHandwriting !== undefined)
+ testcase.verify(InputEngine.None !== undefined)
+ testcase.verify(InputEngine.PatternRecognitionDisabled !== undefined)
+ testcase.verify(InputEngine.Handwriting !== undefined)
+ testcase.verify(InputEngine.HandwritingRecoginition !== undefined)
+ testcase.verify(InputEngine.WordBeforeCursor !== undefined)
+ testcase.verify(InputEngine.WordAfterCursor !== undefined)
+ testcase.verify(InputEngine.WordAtCursor !== undefined)
+ testcase.verify(SelectionListModel.WordCandidateList !== undefined)
+ testcase.verify(SelectionListModel.DisplayRole !== undefined)
+ testcase.verify(SelectionListModel.WordCompletionLengthRole !== undefined)
+ testcase.verify(SelectionListModel.DictionaryType !== undefined)
+ testcase.verify(SelectionListModel.Default !== undefined)
+ testcase.verify(SelectionListModel.User !== undefined)
+ }
+
function setExternalLanguageSwitchEnabled(enabled) {
externalLanguageSwitchEnabled = enabled
}
+ function setLayoutMirroring(enabled) {
+ LayoutMirroring.enabled = enabled
+ }
+
function findVirtualKey(key) {
return Utils.findChild(keyboardLayoutLoader, key, function(obj, param) {
if (!obj.hasOwnProperty("key") || !obj.hasOwnProperty("text"))
@@ -351,7 +433,7 @@ InputPanel {
testcase.wait(20)
if (alternativeKey) {
alternativeKeysSpy.wait()
- var keyIndex = keyObj.effectiveAlternativeKeys.indexOf(key)
+ var keyIndex = keyObj.effectiveAlternativeKeys.indexOf(key.toLowerCase())
var itemX = keyIndex * keyboard.style.alternateKeysListItemWidth + keyboard.style.alternateKeysListItemWidth / 2
virtualKeyPressPoint.x = inputPanel.mapFromItem(alternativeKeys.listView, itemX, 0).x
testcase.mouseMove(inputPanel, virtualKeyPressPoint.x, virtualKeyPressPoint.y)
@@ -383,12 +465,15 @@ InputPanel {
}
} else if (typeof key != "number" || key !== Qt.Key_Shift) {
// Some layouts (such as Arabic, Hindi) may have a second layout
- virtualKeyPress(Qt.Key_Shift)
- InputContext.shiftHandler.clearToggleShiftTimer()
+ virtualKeyClick(Qt.Key_Shift)
+ InputContext.priv.shiftHandler.clearToggleShiftTimer()
testcase.waitForRendering(inputPanel)
success = keyActionOnCurrentLayoutCb(key)
- virtualKeyPress(Qt.Key_Shift)
- InputContext.shiftHandler.clearToggleShiftTimer()
+ if (!success) {
+ virtualKeyClick(Qt.Key_Shift)
+ InputContext.priv.shiftHandler.clearToggleShiftTimer()
+ testcase.waitForRendering(inputPanel)
+ }
}
if (success)
break
@@ -521,6 +606,8 @@ InputPanel {
function activateNavigationKeyMode() {
if (!inputPanel.naviationHighlight.visible) {
+ inputPanel.naviationHighlight.moveDuration = 0
+ inputPanel.naviationHighlight.resizeDuration = 0
emulateNavigationKeyClick(Qt.Key_Right)
if (inputPanel.naviationHighlight.visible) {
while (inputPanel.naviationHighlightAnimating)
@@ -531,7 +618,15 @@ InputPanel {
}
function toggleShift() {
- InputContext.shiftHandler.toggleShift()
+ InputContext.priv.shiftHandler.toggleShift()
+ }
+
+ function setShiftActive(shiftActive) {
+ InputContext.priv.shiftHandler.shiftActive = shiftActive
+ }
+
+ function setCapsLockActive(capsLockActive) {
+ InputContext.priv.shiftHandler.capsLockActive = capsLockActive
}
function style() {
@@ -598,6 +693,48 @@ InputPanel {
return true
}
+ function selectionListCurrentIndex() {
+ return inputPanel.wordCandidateView.currentIndex
+ }
+
+ function selectionListSuggestionIsFromUserDictionary() {
+ if (!inputPanel.wordCandidateView.currentItem)
+ return false
+ var dictionaryType = inputPanel.wordCandidateView.model.dataAt(inputPanel.wordCandidateView.currentIndex, SelectionListModel.Role.Dictionary)
+ return dictionaryType !== undefined && dictionaryType === SelectionListModel.DictionaryType.User
+ }
+
+ function openWordCandidateContextMenu() {
+ if (!inputPanel.wordCandidateView.currentItem)
+ return false
+ testcase.wait(200)
+ wordCandidateContextMenuActiveSpy.clear()
+ testcase.mousePress(inputPanel.wordCandidateView.currentItem)
+ wordCandidateContextMenuActiveSpy.wait()
+ testcase.mouseRelease(inputPanel.wordCandidateView.currentItem)
+ return wordCandidateContextMenu.active
+ }
+
+ function selectItemFromWordCandidateContextMenu(index) {
+ if (!inputPanel.wordCandidateView.currentItem)
+ return false
+ if (!wordCandidateContextMenu.active)
+ return false
+ var wordCandidateContextMenuList = Utils.findChildByProperty(keyboard, "objectName", "wordCandidateContextMenuList", null)
+ if (wordCandidateContextMenuList.currentIndex !== index) {
+ wordCandidateContextMenuList.currentIndex = index
+ testcase.waitForRendering(inputPanel)
+ }
+ if (!wordCandidateContextMenuList.currentItem)
+ return false
+ var itemPos = inputPanel.mapFromItem(wordCandidateContextMenuList.currentItem,
+ wordCandidateContextMenuList.currentItem.width / 2,
+ wordCandidateContextMenuList.currentItem.height / 2)
+ testcase.mouseClick(inputPanel, itemPos.x, itemPos.y, Qt.LeftButton, 0, 20)
+ testcase.waitForRendering(inputPanel)
+ return true
+ }
+
function setHandwritingMode(enabled) {
if (inputPanel.keyboard.handwritingMode !== enabled) {
if (!enabled || inputPanel.keyboard.isHandwritingAvailable())
@@ -611,13 +748,22 @@ InputPanel {
return false
var hwrInputArea = Utils.findChildByProperty(keyboard, "objectName", "hwrInputArea", null)
inputMethodResultSpy.clear()
- if (!Handwriting.emulate(testcase, hwrInputArea, ch, instant)) {
+ if (!Handwriting.emulate(testcase, hwrInputArea, ch, instant,
+ VirtualKeyboardSettings.locale)) {
if (virtualKeyClick(ch))
return true
console.warn("Cannot produce the symbol '%1' in handwriting mode".arg(ch))
return false
}
+ if (isSuperimposedHandwriting())
+ return true
inputMethodResultSpy.wait(3000)
return inputMethodResultSpy.count > 0
}
+
+ function isSuperimposedHandwriting() {
+ if (!inputPanel.keyboard.handwritingMode)
+ return false
+ return inputMethod != null && inputMethod.hasOwnProperty("superimposed") && inputMethod.superimposed
+ }
}
diff --git a/tests/auto/inputpanel/data/inputpanel/unipen_data_korean.js b/tests/auto/inputpanel/data/inputpanel/unipen_data_korean.js
index 1b487c49..db30adda 100644
--- a/tests/auto/inputpanel/data/inputpanel/unipen_data_korean.js
+++ b/tests/auto/inputpanel/data/inputpanel/unipen_data_korean.js
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2018 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
@@ -38,528 +38,528 @@ var unipenData = {
".PEN": [
[
[
- 379,
+ 344,
53,
0
],
[
- 380,
+ 345,
53,
155
],
[
- 382,
+ 347,
53,
177
],
[
- 385,
+ 350,
53,
179
],
[
- 391,
+ 356,
53,
243
],
[
- 400,
+ 365,
53,
244
],
[
- 421,
+ 386,
55,
311
],
[
- 437,
+ 402,
55,
313
],
[
- 441,
+ 406,
55,
315
],
[
- 448,
+ 413,
55,
365
],
[
- 454,
+ 419,
55,
366
],
[
- 461,
+ 426,
55,
370
],
[
- 467,
+ 432,
54,
426
],
[
- 472,
+ 437,
54,
427
],
[
- 475,
+ 440,
54,
486
],
[
- 477,
+ 442,
54,
487
],
[
- 478,
+ 443,
54,
490
],
[
- 479,
+ 444,
54,
548
],
[
- 480,
+ 445,
54,
549
],
[
- 482,
+ 447,
54,
610
],
[
- 485,
+ 450,
54,
610
],
[
- 488,
+ 453,
54,
670
],
[
- 489,
+ 454,
54,
731
],
[
- 489,
+ 454,
55,
939
],
[
- 489,
+ 454,
56,
1003
],
[
- 489,
+ 454,
60,
1004
],
[
- 489,
+ 454,
64,
1064
],
[
- 489,
+ 454,
66,
1065
],
[
- 489,
+ 454,
72,
1124
],
[
- 489,
+ 454,
75,
1125
],
[
- 489,
+ 454,
79,
1131
],
[
- 489,
+ 454,
81,
1184
],
[
- 489,
+ 454,
86,
1185
],
[
- 489,
+ 454,
91,
1245
],
[
- 489,
+ 454,
92,
1246
],
[
- 489,
+ 454,
97,
1306
],
[
- 489,
+ 454,
99,
1307
],
[
- 489,
+ 454,
101,
1366
],
[
- 489,
+ 454,
102,
1367
],
[
- 489,
+ 454,
103,
1427
],
[
- 489,
+ 454,
105,
1429
],
[
- 489,
+ 454,
106,
1500
],
[
- 489,
+ 454,
107,
1549
],
[
- 489,
+ 454,
108,
1550
],
[
- 489,
+ 454,
109,
1614
]
],
[
[
- 383,
+ 348,
113,
2999
],
[
- 384,
+ 349,
113,
3259
],
[
- 385,
+ 350,
112,
3291
],
[
- 386,
+ 351,
112,
3360
],
[
- 399,
+ 364,
112,
3361
],
[
- 412,
+ 377,
112,
3389
],
[
- 434,
+ 399,
112,
3449
],
[
- 440,
+ 405,
112,
3450
],
[
- 451,
+ 416,
112,
3451
],
[
- 455,
+ 420,
112,
3510
],
[
- 479,
+ 444,
111,
3511
],
[
- 493,
+ 458,
110,
3574
],
[
- 506,
+ 471,
109,
3576
],
[
- 513,
+ 478,
109,
3632
],
[
- 515,
+ 480,
109,
3633
],
[
- 516,
+ 481,
109,
3636
]
],
[
[
- 430,
+ 395,
115,
5767
],
[
- 430,
+ 395,
116,
5851
],
[
- 432,
+ 397,
120,
5884
],
[
- 433,
+ 398,
123,
5937
],
[
- 433,
+ 398,
127,
5938
],
[
- 434,
+ 399,
130,
6000
],
[
- 434,
+ 399,
133,
6002
],
[
- 435,
+ 400,
139,
6058
],
[
- 435,
+ 400,
141,
6059
],
[
- 435,
+ 400,
142,
6124
],
[
- 435,
+ 400,
143,
6523
]
],
[
[
- 393,
+ 358,
151,
7943
],
[
- 394,
+ 359,
151,
8099
],
[
- 399,
+ 364,
150,
8124
],
[
- 412,
+ 377,
150,
8184
],
[
- 422,
+ 387,
150,
8185
],
[
- 438,
+ 403,
150,
8245
],
[
- 448,
+ 413,
150,
8246
],
[
- 465,
+ 430,
149,
8305
],
[
- 478,
+ 443,
149,
8306
],
[
- 485,
+ 450,
149,
8366
],
[
- 487,
+ 452,
149,
8366
],
[
- 488,
+ 453,
149,
8432
],
[
- 489,
+ 454,
149,
8490
],
[
- 491,
+ 456,
149,
8492
],
[
- 492,
+ 457,
149,
8549
],
[
- 492,
+ 457,
150,
8835
],
[
- 492,
+ 457,
152,
8882
],
[
- 492,
+ 457,
155,
8883
],
[
- 492,
+ 457,
159,
8944
],
[
- 492,
+ 457,
163,
8945
],
[
- 492,
+ 457,
168,
9005
],
[
- 491,
+ 456,
173,
9005
],
[
- 491,
+ 456,
177,
9067
],
[
- 490,
+ 455,
182,
9068
],
[
- 490,
+ 455,
188,
9126
],
[
- 490,
+ 455,
192,
9126
],
[
- 490,
+ 455,
193,
9130
],
[
- 490,
+ 455,
196,
9188
],
[
- 490,
+ 455,
198,
9247
],
[
- 490,
+ 455,
200,
9247
],
[
- 490,
+ 455,
202,
9307
],
[
- 490,
+ 455,
203,
9308
]
@@ -871,108 +871,128 @@ var unipenData = {
],
[
625,
- 120,
- 3236
+ 121,
+ 3096
+ ],
+ [
+ 626,
+ 121,
+ 3155
+ ],
+ [
+ 628,
+ 121,
+ 3199
+ ],
+ [
+ 629,
+ 121,
+ 3254
+ ],
+ [
+ 631,
+ 121,
+ 3310
]
],
[
[
- 614,
+ 626,
42,
3848
],
[
- 614,
+ 626,
45,
3896
],
[
- 614,
+ 626,
47,
3897
],
[
- 614,
+ 626,
54,
3900
],
[
- 615,
+ 627,
63,
3958
],
[
- 617,
+ 629,
76,
3958
],
[
- 619,
+ 631,
92,
4017
],
[
- 620,
+ 632,
100,
4018
],
[
- 620,
+ 632,
115,
4078
],
[
- 620,
+ 632,
133,
4079
],
[
- 618,
+ 630,
141,
4084
],
[
- 616,
+ 628,
153,
4138
],
[
- 616,
+ 628,
157,
4139
],
[
- 615,
+ 627,
169,
4200
],
[
- 614,
+ 626,
176,
4201
],
[
- 614,
+ 626,
178,
4205
],
[
- 613,
+ 625,
184,
4260
],
[
- 613,
+ 625,
188,
4261
],
[
- 613,
+ 625,
190,
4420
],
[
- 613,
+ 625,
191,
4540
]
@@ -996,134 +1016,134 @@ var unipenData = {
".PEN": [
[
[
- 169,
- 59,
+ 224,
+ 27,
0
],
[
- 171,
- 59,
+ 223,
+ 27,
148
],
[
- 175,
- 59,
+ 222,
+ 34,
170
],
[
- 183,
- 59,
+ 222,
+ 39,
228
],
[
- 197,
- 59,
+ 223,
+ 46,
229
],
[
- 210,
- 59,
+ 223,
+ 47,
288
],
[
223,
- 61,
+ 50,
289
],
[
- 233,
- 61,
+ 224,
+ 53,
292
],
[
- 241,
- 61,
+ 224,
+ 56,
350
],
[
- 252,
- 62,
+ 224,
+ 57,
350
],
[
- 260,
- 62,
+ 225,
+ 59,
418
],
[
- 265,
- 62,
+ 225,
+ 61,
419
],
[
- 266,
+ 225,
62,
748
]
],
[
[
- 224,
- 27,
+ 169,
+ 59,
1367
],
[
- 223,
- 27,
+ 171,
+ 59,
1414
],
[
- 222,
- 34,
+ 175,
+ 59,
1444
],
[
- 222,
- 39,
+ 183,
+ 59,
1502
],
[
- 223,
- 46,
+ 197,
+ 59,
1503
],
[
- 223,
- 47,
+ 210,
+ 59,
1508
],
[
223,
- 50,
+ 61,
1566
],
[
- 224,
- 53,
+ 233,
+ 61,
1568
],
[
- 224,
- 56,
+ 241,
+ 61,
1629
],
[
- 224,
- 57,
+ 252,
+ 62,
1630
],
[
- 225,
- 59,
+ 260,
+ 62,
1630
],
[
- 225,
- 61,
+ 265,
+ 62,
1686
],
[
- 225,
+ 266,
62,
1687
]
@@ -1132,568 +1152,568 @@ var unipenData = {
[
244,
82,
- 3184
+ 2184
],
[
243,
81,
- 3259
+ 2259
],
[
242,
81,
- 3285
+ 2285
],
[
238,
80,
- 3349
+ 2349
],
[
225,
80,
- 3350
+ 2350
],
[
210,
80,
- 3412
+ 2412
],
[
198,
82,
- 3414
+ 2414
],
[
192,
84,
- 3474
+ 2474
],
[
186,
88,
- 3476
+ 2476
],
[
184,
90,
- 3478
+ 2478
],
[
180,
95,
- 3532
+ 2532
],
[
178,
100,
- 3533
+ 2533
],
[
178,
109,
- 3595
+ 2595
],
[
178,
117,
- 3598
+ 2598
],
[
181,
125,
- 3657
+ 2657
],
[
186,
130,
- 3658
+ 2658
],
[
194,
136,
- 3716
+ 2716
],
[
197,
137,
- 3717
+ 2717
],
[
199,
137,
- 3775
+ 2775
],
[
202,
137,
- 3776
+ 2776
],
[
204,
137,
- 3780
+ 2780
],
[
206,
137,
- 3835
+ 2835
],
[
223,
135,
- 3836
+ 2836
],
[
234,
133,
- 3897
+ 2897
],
[
240,
130,
- 3898
+ 2898
],
[
242,
129,
- 3900
+ 2900
],
[
244,
128,
- 3958
+ 2958
],
[
251,
120,
- 3959
+ 2959
],
[
253,
117,
- 4017
+ 3017
],
[
253,
114,
- 4020
+ 3020
],
[
253,
110,
- 4081
+ 3081
],
[
251,
104,
- 4083
+ 3083
],
[
249,
99,
- 4140
+ 3140
],
[
247,
95,
- 4141
+ 3141
],
[
243,
89,
- 4205
+ 3205
],
[
242,
86,
- 4206
+ 3206
],
[
242,
85,
- 4212
+ 3212
],
[
241,
84,
- 4284
+ 3284
],
[
240,
84,
- 4324
+ 3324
],
[
239,
84,
- 4596
- ]
- ],
- [
- [
- 177,
- 144,
- 6344
- ],
- [
- 178,
- 144,
- 6573
- ],
- [
- 178,
- 146,
- 6600
- ],
- [
- 179,
- 148,
- 6604
- ],
- [
- 179,
- 150,
- 6657
- ],
- [
- 180,
- 153,
- 6658
- ],
- [
- 181,
- 160,
- 6719
- ],
- [
- 182,
- 167,
- 6720
- ],
- [
- 183,
- 176,
- 6779
- ],
- [
- 184,
- 182,
- 6780
- ],
- [
- 184,
- 185,
- 6840
- ],
- [
- 185,
- 189,
- 6841
- ],
- [
- 186,
- 189,
- 7108
- ],
- [
- 195,
- 189,
- 7174
- ],
- [
- 206,
- 187,
- 7234
- ],
- [
- 213,
- 186,
- 7236
- ],
- [
- 219,
- 186,
- 7294
- ],
- [
- 224,
- 186,
- 7296
- ],
- [
- 233,
- 186,
- 7355
- ],
- [
- 241,
- 185,
- 7355
- ],
- [
- 252,
- 185,
- 7417
- ],
- [
- 262,
- 185,
- 7419
- ],
- [
- 268,
- 186,
- 7421
- ],
- [
- 276,
- 186,
- 7475
- ],
- [
- 281,
- 186,
- 7476
- ],
- [
- 289,
- 186,
- 7536
- ],
- [
- 290,
- 186,
- 7537
- ],
- [
- 291,
- 186,
- 7597
- ],
- [
- 292,
- 186,
- 7660
- ],
- [
- 293,
- 186,
- 7724
- ],
- [
- 294,
- 186,
- 7725
- ],
- [
- 295,
- 186,
- 8172
+ 3596
]
],
[
[
283,
25,
- 9136
+ 4344
],
[
283,
26,
- 9220
+ 4573
],
[
283,
27,
- 9244
+ 4600
],
[
283,
33,
- 9299
+ 4604
],
[
283,
41,
- 9300
+ 4657
],
[
282,
53,
- 9359
+ 4658
],
[
282,
65,
- 9359
+ 4719
],
[
282,
78,
- 9420
+ 4720
],
[
282,
92,
- 9421
+ 4779
],
[
281,
115,
- 9481
+ 4780
],
[
280,
124,
- 9482
+ 4840
],
[
279,
133,
- 9484
+ 4841
],
[
279,
135,
- 9542
+ 5108
],
[
278,
142,
- 9542
+ 5174
],
[
277,
148,
- 9605
+ 5234
],
[
277,
150,
- 9607
+ 5236
],
[
277,
151,
- 9764
+ 5294
],
[
277,
153,
- 9816
+ 5296
],
[
277,
154,
- 9876
+ 5355
],
[
277,
153,
- 10124
+ 5355
],
[
277,
151,
- 10180
+ 5417
]
],
[
[
282,
89,
- 10651
+ 6136
],
[
283,
89,
- 10796
+ 6220
],
[
286,
89,
- 10821
+ 6244
],
[
288,
88,
- 10879
+ 6299
],
[
291,
88,
- 10879
+ 6300
],
[
294,
88,
- 10941
+ 6359
],
[
295,
88,
- 10941
+ 6359
],
[
297,
88,
- 11003
+ 6420
],
[
298,
88,
- 11004
+ 6421
],
[
299,
88,
- 11061
+ 6481
],
[
300,
88,
- 11062
+ 6482
],
[
301,
88,
- 11121
+ 6484
],
[
302,
88,
- 11123
+ 6542
],
[
303,
88,
- 11185
+ 6542
],
[
304,
88,
- 11187
+ 6605
],
[
305,
88,
- 11189
+ 6607
],
[
306,
88,
- 11248
+ 6764
],
[
307,
88,
- 11249
+ 6816
],
[
309,
89,
- 11304
+ 6876
+ ]
+ ],
+ [
+ [
+ 177,
+ 144,
+ 7651
+ ],
+ [
+ 178,
+ 144,
+ 7796
+ ],
+ [
+ 178,
+ 146,
+ 7821
+ ],
+ [
+ 179,
+ 148,
+ 7879
+ ],
+ [
+ 179,
+ 150,
+ 7879
+ ],
+ [
+ 180,
+ 153,
+ 7941
+ ],
+ [
+ 181,
+ 160,
+ 7941
+ ],
+ [
+ 182,
+ 167,
+ 8003
+ ],
+ [
+ 183,
+ 176,
+ 8004
+ ],
+ [
+ 184,
+ 182,
+ 8061
+ ],
+ [
+ 184,
+ 185,
+ 8062
+ ],
+ [
+ 185,
+ 189,
+ 8121
+ ],
+ [
+ 186,
+ 189,
+ 8123
+ ],
+ [
+ 195,
+ 189,
+ 8185
+ ],
+ [
+ 206,
+ 187,
+ 8187
+ ],
+ [
+ 213,
+ 186,
+ 8189
+ ],
+ [
+ 219,
+ 186,
+ 8248
+ ],
+ [
+ 224,
+ 186,
+ 8249
+ ],
+ [
+ 233,
+ 186,
+ 8304
+ ],
+ [
+ 241,
+ 185,
+ 8304
+ ],
+ [
+ 252,
+ 185,
+ 8366
+ ],
+ [
+ 262,
+ 185,
+ 8368
+ ],
+ [
+ 268,
+ 186,
+ 8370
+ ],
+ [
+ 276,
+ 186,
+ 8424
+ ],
+ [
+ 281,
+ 186,
+ 8425
+ ],
+ [
+ 289,
+ 186,
+ 8485
+ ],
+ [
+ 290,
+ 186,
+ 8486
+ ],
+ [
+ 291,
+ 186,
+ 8546
+ ],
+ [
+ 292,
+ 186,
+ 8609
+ ],
+ [
+ 293,
+ 186,
+ 8673
+ ],
+ [
+ 294,
+ 186,
+ 8674
+ ],
+ [
+ 295,
+ 186,
+ 8738
]
]
],
diff --git a/tests/auto/inputpanel/data/inputpanel/unipen_data_vietnamese.js b/tests/auto/inputpanel/data/inputpanel/unipen_data_vietnamese.js
new file mode 100644
index 00000000..09d2fae6
--- /dev/null
+++ b/tests/auto/inputpanel/data/inputpanel/unipen_data_vietnamese.js
@@ -0,0 +1,1930 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 or (at your option) any later version
+** approved by the KDE Free Qt Foundation. The licenses are as published by
+** the Free Software Foundation and appearing in the file LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+var unipenData = {
+ "0x0067": {
+ ".COORD": [
+ "X",
+ "Y",
+ "T"
+ ],
+ ".HIERARCHY": "CHARACTER",
+ ".PEN": [
+ [
+ [
+ 493,
+ 87,
+ 0
+ ],
+ [
+ 492,
+ 86,
+ 57
+ ],
+ [
+ 488,
+ 84,
+ 87
+ ],
+ [
+ 484,
+ 83,
+ 150
+ ],
+ [
+ 480,
+ 83,
+ 152
+ ],
+ [
+ 473,
+ 83,
+ 212
+ ],
+ [
+ 462,
+ 85,
+ 215
+ ],
+ [
+ 454,
+ 89,
+ 271
+ ],
+ [
+ 452,
+ 92,
+ 273
+ ],
+ [
+ 451,
+ 94,
+ 274
+ ],
+ [
+ 449,
+ 99,
+ 332
+ ],
+ [
+ 445,
+ 109,
+ 333
+ ],
+ [
+ 443,
+ 114,
+ 337
+ ],
+ [
+ 442,
+ 120,
+ 394
+ ],
+ [
+ 442,
+ 132,
+ 395
+ ],
+ [
+ 442,
+ 144,
+ 455
+ ],
+ [
+ 444,
+ 159,
+ 458
+ ],
+ [
+ 446,
+ 167,
+ 522
+ ],
+ [
+ 448,
+ 175,
+ 524
+ ],
+ [
+ 450,
+ 178,
+ 577
+ ],
+ [
+ 450,
+ 179,
+ 578
+ ],
+ [
+ 451,
+ 180,
+ 640
+ ],
+ [
+ 454,
+ 181,
+ 642
+ ],
+ [
+ 455,
+ 182,
+ 699
+ ],
+ [
+ 456,
+ 183,
+ 701
+ ],
+ [
+ 460,
+ 185,
+ 760
+ ],
+ [
+ 463,
+ 185,
+ 762
+ ],
+ [
+ 466,
+ 186,
+ 823
+ ],
+ [
+ 469,
+ 186,
+ 825
+ ],
+ [
+ 474,
+ 183,
+ 883
+ ],
+ [
+ 487,
+ 179,
+ 884
+ ],
+ [
+ 496,
+ 173,
+ 944
+ ],
+ [
+ 502,
+ 162,
+ 945
+ ],
+ [
+ 509,
+ 144,
+ 1011
+ ],
+ [
+ 514,
+ 133,
+ 1013
+ ],
+ [
+ 514,
+ 124,
+ 1069
+ ],
+ [
+ 514,
+ 118,
+ 1070
+ ],
+ [
+ 514,
+ 113,
+ 1073
+ ],
+ [
+ 512,
+ 108,
+ 1125
+ ],
+ [
+ 509,
+ 100,
+ 1125
+ ],
+ [
+ 507,
+ 97,
+ 1185
+ ],
+ [
+ 506,
+ 94,
+ 1186
+ ],
+ [
+ 506,
+ 92,
+ 1247
+ ],
+ [
+ 505,
+ 90,
+ 1248
+ ],
+ [
+ 504,
+ 89,
+ 1310
+ ],
+ [
+ 504,
+ 88,
+ 1312
+ ],
+ [
+ 504,
+ 90,
+ 1571
+ ],
+ [
+ 506,
+ 95,
+ 1616
+ ],
+ [
+ 507,
+ 101,
+ 1618
+ ],
+ [
+ 511,
+ 117,
+ 1675
+ ],
+ [
+ 512,
+ 130,
+ 1676
+ ],
+ [
+ 514,
+ 145,
+ 1738
+ ],
+ [
+ 514,
+ 158,
+ 1740
+ ],
+ [
+ 514,
+ 165,
+ 1797
+ ],
+ [
+ 514,
+ 177,
+ 1799
+ ],
+ [
+ 514,
+ 182,
+ 1802
+ ],
+ [
+ 514,
+ 187,
+ 1860
+ ],
+ [
+ 513,
+ 193,
+ 1862
+ ],
+ [
+ 513,
+ 198,
+ 1922
+ ],
+ [
+ 512,
+ 200,
+ 1924
+ ],
+ [
+ 512,
+ 202,
+ 1981
+ ],
+ [
+ 512,
+ 206,
+ 1983
+ ],
+ [
+ 511,
+ 207,
+ 2043
+ ],
+ [
+ 511,
+ 209,
+ 2044
+ ],
+ [
+ 511,
+ 211,
+ 2045
+ ],
+ [
+ 511,
+ 212,
+ 2050
+ ],
+ [
+ 511,
+ 214,
+ 2106
+ ],
+ [
+ 510,
+ 217,
+ 2167
+ ],
+ [
+ 510,
+ 218,
+ 2169
+ ],
+ [
+ 508,
+ 220,
+ 2170
+ ],
+ [
+ 507,
+ 222,
+ 2228
+ ],
+ [
+ 503,
+ 226,
+ 2230
+ ],
+ [
+ 500,
+ 227,
+ 2234
+ ],
+ [
+ 499,
+ 229,
+ 2290
+ ],
+ [
+ 491,
+ 232,
+ 2293
+ ],
+ [
+ 480,
+ 233,
+ 2349
+ ],
+ [
+ 466,
+ 234,
+ 2350
+ ],
+ [
+ 458,
+ 235,
+ 2411
+ ]
+ ]
+ ],
+ ".POINTS_PER_SECOND": 60,
+ ".SEGMENT": "CHARACTER",
+ ".VERSION": "1.0",
+ ".X_DIM": 1032,
+ ".X_POINTS_PER_INCH": 94,
+ ".Y_DIM": 263,
+ ".Y_POINTS_PER_INCH": 94
+ },
+ "0x0069": {
+ ".COORD": [
+ "X",
+ "Y",
+ "T"
+ ],
+ ".HIERARCHY": "CHARACTER",
+ ".PEN": [
+ [
+ [
+ 538,
+ 83,
+ 0
+ ],
+ [
+ 538,
+ 86,
+ 83
+ ],
+ [
+ 538,
+ 88,
+ 96
+ ],
+ [
+ 538,
+ 92,
+ 147
+ ],
+ [
+ 538,
+ 105,
+ 148
+ ],
+ [
+ 538,
+ 129,
+ 203
+ ],
+ [
+ 537,
+ 141,
+ 204
+ ],
+ [
+ 534,
+ 170,
+ 264
+ ],
+ [
+ 532,
+ 182,
+ 265
+ ],
+ [
+ 532,
+ 191,
+ 327
+ ],
+ [
+ 532,
+ 197,
+ 329
+ ],
+ [
+ 532,
+ 198,
+ 388
+ ],
+ [
+ 532,
+ 200,
+ 390
+ ],
+ [
+ 532,
+ 198,
+ 764
+ ],
+ [
+ 532,
+ 194,
+ 812
+ ]
+ ],
+ [
+ [
+ 533,
+ 58,
+ 1292
+ ]
+ ]
+ ],
+ ".POINTS_PER_SECOND": 60,
+ ".SEGMENT": "CHARACTER",
+ ".VERSION": "1.0",
+ ".X_DIM": 1032,
+ ".X_POINTS_PER_INCH": 94,
+ ".Y_DIM": 263,
+ ".Y_POINTS_PER_INCH": 94
+ },
+ "0x006e": {
+ ".COORD": [
+ "X",
+ "Y",
+ "T"
+ ],
+ ".HIERARCHY": "CHARACTER",
+ ".PEN": [
+ [
+ [
+ 400,
+ 82,
+ 0
+ ],
+ [
+ 400,
+ 83,
+ 85
+ ],
+ [
+ 400,
+ 85,
+ 96
+ ],
+ [
+ 400,
+ 96,
+ 153
+ ],
+ [
+ 401,
+ 103,
+ 156
+ ],
+ [
+ 402,
+ 113,
+ 157
+ ],
+ [
+ 402,
+ 124,
+ 215
+ ],
+ [
+ 402,
+ 147,
+ 217
+ ],
+ [
+ 402,
+ 161,
+ 221
+ ],
+ [
+ 402,
+ 173,
+ 275
+ ],
+ [
+ 402,
+ 188,
+ 278
+ ],
+ [
+ 400,
+ 198,
+ 342
+ ],
+ [
+ 399,
+ 202,
+ 344
+ ],
+ [
+ 399,
+ 204,
+ 345
+ ],
+ [
+ 399,
+ 205,
+ 396
+ ],
+ [
+ 399,
+ 204,
+ 526
+ ],
+ [
+ 399,
+ 200,
+ 580
+ ],
+ [
+ 399,
+ 191,
+ 582
+ ],
+ [
+ 399,
+ 185,
+ 641
+ ],
+ [
+ 401,
+ 170,
+ 643
+ ],
+ [
+ 402,
+ 162,
+ 644
+ ],
+ [
+ 403,
+ 153,
+ 701
+ ],
+ [
+ 404,
+ 132,
+ 703
+ ],
+ [
+ 407,
+ 118,
+ 761
+ ],
+ [
+ 409,
+ 109,
+ 763
+ ],
+ [
+ 411,
+ 104,
+ 764
+ ],
+ [
+ 414,
+ 99,
+ 824
+ ],
+ [
+ 415,
+ 98,
+ 827
+ ],
+ [
+ 417,
+ 95,
+ 884
+ ],
+ [
+ 418,
+ 93,
+ 886
+ ],
+ [
+ 419,
+ 93,
+ 1125
+ ],
+ [
+ 420,
+ 93,
+ 1183
+ ],
+ [
+ 422,
+ 92,
+ 1185
+ ],
+ [
+ 423,
+ 92,
+ 1216
+ ],
+ [
+ 425,
+ 91,
+ 1277
+ ],
+ [
+ 426,
+ 91,
+ 1337
+ ],
+ [
+ 427,
+ 91,
+ 1338
+ ],
+ [
+ 428,
+ 91,
+ 1340
+ ],
+ [
+ 432,
+ 94,
+ 1399
+ ],
+ [
+ 434,
+ 96,
+ 1400
+ ],
+ [
+ 437,
+ 102,
+ 1430
+ ],
+ [
+ 439,
+ 105,
+ 1460
+ ],
+ [
+ 442,
+ 115,
+ 1461
+ ],
+ [
+ 444,
+ 126,
+ 1520
+ ],
+ [
+ 446,
+ 137,
+ 1521
+ ],
+ [
+ 447,
+ 148,
+ 1581
+ ],
+ [
+ 447,
+ 153,
+ 1582
+ ],
+ [
+ 447,
+ 159,
+ 1642
+ ],
+ [
+ 447,
+ 165,
+ 1643
+ ],
+ [
+ 447,
+ 166,
+ 1645
+ ],
+ [
+ 447,
+ 172,
+ 1703
+ ],
+ [
+ 446,
+ 177,
+ 1764
+ ],
+ [
+ 446,
+ 179,
+ 1765
+ ],
+ [
+ 446,
+ 180,
+ 1853
+ ],
+ [
+ 446,
+ 181,
+ 1891
+ ],
+ [
+ 446,
+ 183,
+ 1947
+ ],
+ [
+ 446,
+ 185,
+ 1950
+ ],
+ [
+ 446,
+ 186,
+ 2007
+ ],
+ [
+ 446,
+ 188,
+ 2008
+ ],
+ [
+ 446,
+ 189,
+ 2069
+ ],
+ [
+ 445,
+ 191,
+ 2070
+ ],
+ [
+ 445,
+ 192,
+ 2131
+ ],
+ [
+ 445,
+ 193,
+ 2193
+ ],
+ [
+ 445,
+ 194,
+ 2195
+ ],
+ [
+ 445,
+ 195,
+ 2413
+ ],
+ [
+ 445,
+ 196,
+ 2477
+ ],
+ [
+ 445,
+ 197,
+ 2527
+ ],
+ [
+ 445,
+ 198,
+ 2528
+ ],
+ [
+ 445,
+ 199,
+ 2587
+ ],
+ [
+ 445,
+ 200,
+ 2588
+ ],
+ [
+ 445,
+ 201,
+ 2648
+ ]
+ ]
+ ],
+ ".POINTS_PER_SECOND": 60,
+ ".SEGMENT": "CHARACTER",
+ ".VERSION": "1.0",
+ ".X_DIM": 1032,
+ ".X_POINTS_PER_INCH": 94,
+ ".Y_DIM": 263,
+ ".Y_POINTS_PER_INCH": 94
+ },
+ "0x0074": {
+ ".COORD": [
+ "X",
+ "Y",
+ "T"
+ ],
+ ".HIERARCHY": "CHARACTER",
+ ".PEN": [
+ [
+ [
+ 639,
+ 167,
+ 0
+ ],
+ [
+ 640,
+ 167,
+ 50
+ ],
+ [
+ 640,
+ 164,
+ 76
+ ],
+ [
+ 645,
+ 154,
+ 136
+ ],
+ [
+ 653,
+ 135,
+ 137
+ ],
+ [
+ 662,
+ 108,
+ 203
+ ],
+ [
+ 666,
+ 87,
+ 205
+ ],
+ [
+ 666,
+ 73,
+ 257
+ ],
+ [
+ 666,
+ 67,
+ 259
+ ],
+ [
+ 666,
+ 62,
+ 318
+ ],
+ [
+ 666,
+ 60,
+ 319
+ ],
+ [
+ 666,
+ 58,
+ 380
+ ],
+ [
+ 665,
+ 57,
+ 381
+ ],
+ [
+ 665,
+ 56,
+ 440
+ ],
+ [
+ 664,
+ 57,
+ 505
+ ],
+ [
+ 664,
+ 58,
+ 507
+ ],
+ [
+ 663,
+ 61,
+ 561
+ ],
+ [
+ 663,
+ 66,
+ 562
+ ],
+ [
+ 662,
+ 75,
+ 622
+ ],
+ [
+ 661,
+ 86,
+ 623
+ ],
+ [
+ 660,
+ 98,
+ 688
+ ],
+ [
+ 659,
+ 111,
+ 689
+ ],
+ [
+ 659,
+ 114,
+ 690
+ ],
+ [
+ 659,
+ 121,
+ 745
+ ],
+ [
+ 659,
+ 132,
+ 746
+ ],
+ [
+ 659,
+ 141,
+ 805
+ ],
+ [
+ 659,
+ 149,
+ 806
+ ],
+ [
+ 659,
+ 158,
+ 868
+ ],
+ [
+ 660,
+ 161,
+ 870
+ ],
+ [
+ 661,
+ 164,
+ 929
+ ],
+ [
+ 661,
+ 165,
+ 990
+ ],
+ [
+ 662,
+ 166,
+ 992
+ ],
+ [
+ 663,
+ 167,
+ 1131
+ ],
+ [
+ 663,
+ 165,
+ 1483
+ ],
+ [
+ 663,
+ 159,
+ 1535
+ ],
+ [
+ 664,
+ 156,
+ 1536
+ ],
+ [
+ 664,
+ 151,
+ 1538
+ ],
+ [
+ 665,
+ 146,
+ 1595
+ ],
+ [
+ 666,
+ 136,
+ 1596
+ ],
+ [
+ 666,
+ 127,
+ 1659
+ ],
+ [
+ 666,
+ 116,
+ 1662
+ ],
+ [
+ 665,
+ 111,
+ 1667
+ ],
+ [
+ 663,
+ 105,
+ 1723
+ ],
+ [
+ 656,
+ 96,
+ 1724
+ ],
+ [
+ 652,
+ 93,
+ 1781
+ ],
+ [
+ 648,
+ 92,
+ 1783
+ ],
+ [
+ 643,
+ 90,
+ 1786
+ ],
+ [
+ 639,
+ 89,
+ 1840
+ ],
+ [
+ 633,
+ 88,
+ 1841
+ ],
+ [
+ 632,
+ 87,
+ 1971
+ ],
+ [
+ 632,
+ 86,
+ 2023
+ ],
+ [
+ 636,
+ 85,
+ 2023
+ ],
+ [
+ 641,
+ 84,
+ 2024
+ ],
+ [
+ 647,
+ 82,
+ 2026
+ ],
+ [
+ 655,
+ 81,
+ 2084
+ ],
+ [
+ 668,
+ 79,
+ 2085
+ ],
+ [
+ 682,
+ 77,
+ 2148
+ ],
+ [
+ 686,
+ 77,
+ 2150
+ ],
+ [
+ 688,
+ 77,
+ 2154
+ ],
+ [
+ 689,
+ 77,
+ 2211
+ ],
+ [
+ 690,
+ 77,
+ 2267
+ ]
+ ]
+ ],
+ ".POINTS_PER_SECOND": 60,
+ ".SEGMENT": "CHARACTER",
+ ".VERSION": "1.0",
+ ".X_DIM": 1032,
+ ".X_POINTS_PER_INCH": 94,
+ ".Y_DIM": 263,
+ ".Y_POINTS_PER_INCH": 94
+ },
+ "0x1ebf": {
+ ".COORD": [
+ "X",
+ "Y",
+ "T"
+ ],
+ ".HIERARCHY": "CHARACTER",
+ ".PEN": [
+ [
+ [
+ 294,
+ 112,
+ 0
+ ],
+ [
+ 297,
+ 112,
+ 117
+ ],
+ [
+ 299,
+ 113,
+ 134
+ ],
+ [
+ 305,
+ 114,
+ 141
+ ],
+ [
+ 311,
+ 115,
+ 176
+ ],
+ [
+ 318,
+ 115,
+ 177
+ ],
+ [
+ 325,
+ 116,
+ 237
+ ],
+ [
+ 330,
+ 116,
+ 238
+ ],
+ [
+ 340,
+ 116,
+ 297
+ ],
+ [
+ 350,
+ 116,
+ 299
+ ],
+ [
+ 352,
+ 116,
+ 358
+ ],
+ [
+ 352,
+ 111,
+ 360
+ ],
+ [
+ 353,
+ 104,
+ 419
+ ],
+ [
+ 353,
+ 98,
+ 420
+ ],
+ [
+ 353,
+ 94,
+ 481
+ ],
+ [
+ 347,
+ 87,
+ 483
+ ],
+ [
+ 337,
+ 81,
+ 541
+ ],
+ [
+ 334,
+ 79,
+ 543
+ ],
+ [
+ 330,
+ 78,
+ 572
+ ],
+ [
+ 329,
+ 78,
+ 606
+ ],
+ [
+ 320,
+ 78,
+ 607
+ ],
+ [
+ 314,
+ 78,
+ 662
+ ],
+ [
+ 303,
+ 80,
+ 663
+ ],
+ [
+ 301,
+ 82,
+ 667
+ ],
+ [
+ 299,
+ 84,
+ 723
+ ],
+ [
+ 292,
+ 93,
+ 725
+ ],
+ [
+ 289,
+ 97,
+ 783
+ ],
+ [
+ 284,
+ 108,
+ 786
+ ],
+ [
+ 282,
+ 114,
+ 788
+ ],
+ [
+ 282,
+ 121,
+ 843
+ ],
+ [
+ 282,
+ 134,
+ 845
+ ],
+ [
+ 285,
+ 145,
+ 903
+ ],
+ [
+ 288,
+ 153,
+ 906
+ ],
+ [
+ 292,
+ 159,
+ 966
+ ],
+ [
+ 293,
+ 161,
+ 968
+ ],
+ [
+ 295,
+ 165,
+ 972
+ ],
+ [
+ 296,
+ 165,
+ 1026
+ ],
+ [
+ 299,
+ 168,
+ 1027
+ ],
+ [
+ 304,
+ 170,
+ 1092
+ ],
+ [
+ 311,
+ 173,
+ 1093
+ ],
+ [
+ 314,
+ 173,
+ 1095
+ ],
+ [
+ 323,
+ 174,
+ 1151
+ ],
+ [
+ 331,
+ 175,
+ 1153
+ ],
+ [
+ 343,
+ 176,
+ 1213
+ ],
+ [
+ 353,
+ 176,
+ 1215
+ ],
+ [
+ 357,
+ 175,
+ 1273
+ ],
+ [
+ 359,
+ 172,
+ 1275
+ ],
+ [
+ 359,
+ 171,
+ 1334
+ ],
+ [
+ 360,
+ 171,
+ 2556
+ ]
+ ],
+ [
+ [
+ 306,
+ 67,
+ 3105
+ ],
+ [
+ 306,
+ 64,
+ 3162
+ ],
+ [
+ 307,
+ 63,
+ 3164
+ ],
+ [
+ 309,
+ 62,
+ 3219
+ ],
+ [
+ 314,
+ 56,
+ 3221
+ ],
+ [
+ 320,
+ 47,
+ 3281
+ ],
+ [
+ 323,
+ 43,
+ 3283
+ ],
+ [
+ 325,
+ 40,
+ 3285
+ ],
+ [
+ 326,
+ 40,
+ 3412
+ ],
+ [
+ 327,
+ 41,
+ 3462
+ ],
+ [
+ 327,
+ 43,
+ 3463
+ ],
+ [
+ 328,
+ 47,
+ 3467
+ ],
+ [
+ 329,
+ 51,
+ 3522
+ ],
+ [
+ 330,
+ 59,
+ 3523
+ ],
+ [
+ 330,
+ 62,
+ 3586
+ ],
+ [
+ 331,
+ 62,
+ 4012
+ ]
+ ],
+ [
+ [
+ 338,
+ 62,
+ 4380
+ ],
+ [
+ 340,
+ 62,
+ 4443
+ ],
+ [
+ 343,
+ 59,
+ 4471
+ ],
+ [
+ 348,
+ 56,
+ 4532
+ ],
+ [
+ 352,
+ 51,
+ 4535
+ ],
+ [
+ 355,
+ 47,
+ 4593
+ ],
+ [
+ 356,
+ 45,
+ 4594
+ ],
+ [
+ 357,
+ 44,
+ 4595
+ ]
+ ]
+ ],
+ ".POINTS_PER_SECOND": 60,
+ ".SEGMENT": "CHARACTER",
+ ".VERSION": "1.0",
+ ".X_DIM": 1032,
+ ".X_POINTS_PER_INCH": 94,
+ ".Y_DIM": 263,
+ ".Y_POINTS_PER_INCH": 94
+ },
+ "0x1ec7": {
+ ".COORD": [
+ "X",
+ "Y",
+ "T"
+ ],
+ ".HIERARCHY": "CHARACTER",
+ ".PEN": [
+ [
+ [
+ 561,
+ 107,
+ 0
+ ],
+ [
+ 564,
+ 107,
+ 60
+ ],
+ [
+ 571,
+ 109,
+ 76
+ ],
+ [
+ 583,
+ 109,
+ 128
+ ],
+ [
+ 608,
+ 111,
+ 129
+ ],
+ [
+ 620,
+ 111,
+ 186
+ ],
+ [
+ 632,
+ 109,
+ 187
+ ],
+ [
+ 634,
+ 106,
+ 188
+ ],
+ [
+ 635,
+ 100,
+ 246
+ ],
+ [
+ 632,
+ 93,
+ 246
+ ],
+ [
+ 624,
+ 87,
+ 306
+ ],
+ [
+ 619,
+ 86,
+ 307
+ ],
+ [
+ 614,
+ 85,
+ 308
+ ],
+ [
+ 608,
+ 85,
+ 367
+ ],
+ [
+ 594,
+ 87,
+ 368
+ ],
+ [
+ 587,
+ 90,
+ 371
+ ],
+ [
+ 582,
+ 94,
+ 437
+ ],
+ [
+ 564,
+ 110,
+ 438
+ ],
+ [
+ 559,
+ 117,
+ 489
+ ],
+ [
+ 554,
+ 132,
+ 490
+ ],
+ [
+ 554,
+ 149,
+ 550
+ ],
+ [
+ 559,
+ 161,
+ 551
+ ],
+ [
+ 562,
+ 164,
+ 611
+ ],
+ [
+ 568,
+ 166,
+ 612
+ ],
+ [
+ 576,
+ 167,
+ 672
+ ],
+ [
+ 605,
+ 168,
+ 674
+ ],
+ [
+ 622,
+ 168,
+ 733
+ ],
+ [
+ 625,
+ 167,
+ 794
+ ],
+ [
+ 626,
+ 167,
+ 795
+ ],
+ [
+ 627,
+ 166,
+ 857
+ ],
+ [
+ 628,
+ 166,
+ 1029
+ ]
+ ],
+ [
+ [
+ 583,
+ 57,
+ 4161
+ ],
+ [
+ 584,
+ 57,
+ 4229
+ ],
+ [
+ 588,
+ 53,
+ 4231
+ ],
+ [
+ 592,
+ 49,
+ 4288
+ ],
+ [
+ 595,
+ 45,
+ 4289
+ ],
+ [
+ 599,
+ 42,
+ 4351
+ ],
+ [
+ 600,
+ 42,
+ 4353
+ ],
+ [
+ 601,
+ 41,
+ 4411
+ ],
+ [
+ 602,
+ 40,
+ 4476
+ ],
+ [
+ 603,
+ 39,
+ 4749
+ ],
+ [
+ 604,
+ 38,
+ 4836
+ ],
+ [
+ 605,
+ 38,
+ 4895
+ ],
+ [
+ 606,
+ 38,
+ 4900
+ ],
+ [
+ 607,
+ 38,
+ 5005
+ ],
+ [
+ 608,
+ 38,
+ 5149
+ ],
+ [
+ 609,
+ 38,
+ 5198
+ ],
+ [
+ 609,
+ 39,
+ 5199
+ ],
+ [
+ 613,
+ 51,
+ 5260
+ ],
+ [
+ 615,
+ 59,
+ 5261
+ ],
+ [
+ 616,
+ 65,
+ 5320
+ ],
+ [
+ 617,
+ 68,
+ 5321
+ ],
+ [
+ 617,
+ 69,
+ 5323
+ ],
+ [
+ 617,
+ 70,
+ 5382
+ ],
+ [
+ 618,
+ 71,
+ 5383
+ ]
+ ],
+ [
+ [
+ 594,
+ 188,
+ 6585
+ ]
+ ]
+ ],
+ ".POINTS_PER_SECOND": 60,
+ ".SEGMENT": "CHARACTER",
+ ".VERSION": "1.0",
+ ".X_DIM": 1032,
+ ".X_POINTS_PER_INCH": 94,
+ ".Y_DIM": 263,
+ ".Y_POINTS_PER_INCH": 94
+ }
+}