*** empty log message ***
[m17n/m17n-lib-js.git] / vi-tcvn.mimx
1 <?xml version='1.0'?>
2 <input-method xmlns="http://www.m17n.org/MIM">
3   <tags>
4     <language>vi</language>
5     <name>tcvn</name>
6   </tags>
7   <description>
8     <gettext>Vietnames input method using the TCVN6064 sequence.
9 Typing Backslash ('\') toggles the normal mode and English mode.
10 The following variables are customizable:
11   tone-mark-on-last: control tone mark position in equivocal cases
12   backspace-is-undo: control the action of Backspace key (delete or undo)</gettext>
13   </description>
14   <title>Ắ(TCVN)</title>
15   <variable-list>
16     <defvar vname="tone-mark-on-last">
17       <description>
18         <gettext>Flag to control tone mark position in equivocal cases.
19 If this variable is 0 (the default), put tone mark on the first vowel
20 in such equivocal cases as "oa", "oe", "uy".
21 Otherwise, put tone mark on the last vowel.</gettext>
22       </description>
23       <integer>0</integer>
24       <possible-value>
25         <integer>0</integer>
26         <integer>1</integer>
27       </possible-value>
28     </defvar>
29     <defvar vname="backspace-is-undo">
30       <description>
31         <gettext>Flag to control the action of Backspace key (delete or undo).
32 If this variable is 0 (the default), Backspace key deletes the previous
33 character (e.g. "q u a i s BS" =&gt; "quá").
34 If the value is 1, Backspace key undoes the previous key
35 (e.g. "q u a i s BS" =&gt; "quai").</gettext>
36       </description>
37       <integer>0</integer>
38       <possible-value>
39         <integer>0</integer>
40         <integer>1</integer>
41       </possible-value>
42     </defvar>
43   </variable-list>
44   <macro-list>
45     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="vi-base.mimx" xpointer="xmlns(mim=http://www.m17n.org/MIM)xpointer(//mim:defmacro)">
46       <tags>
47         <language>t</language>
48         <name>nil</name>
49         <extra-id>vi-base</extra-id>
50       </tags>
51       <section>macro</section>
52     </xi:include>
53   </macro-list>
54   <map-list>
55     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="vi-base.mimx" xpointer="xmlns(mim=http://www.m17n.org/MIM)xpointer(//mim:map)">
56       <tags>
57         <language>t</language>
58         <name>nil</name>
59         <extra-id>vi-base</extra-id>
60       </tags>
61       <section>map</section>
62     </xi:include>
63     <map mname="map-vowel-ext">
64       <rule>
65         <keyseq>
66           <string>2</string>
67         </keyseq>
68         <insert-candidates>
69           <string>âấầẩẫậ</string>
70         </insert-candidates>
71       </rule>
72       <rule>
73         <keyseq>
74           <string>@</string>
75         </keyseq>
76         <insert-candidates>
77           <string>ÂẤẦẨẪẬ</string>
78         </insert-candidates>
79       </rule>
80       <rule>
81         <keyseq>
82           <string>1</string>
83         </keyseq>
84         <insert-candidates>
85           <string>ăắằẳẵặ</string>
86         </insert-candidates>
87       </rule>
88       <rule>
89         <keyseq>
90           <string>!</string>
91         </keyseq>
92         <insert-candidates>
93           <string>ĂẮẰẲẴẶ</string>
94         </insert-candidates>
95       </rule>
96       <rule>
97         <keyseq>
98           <string>3</string>
99         </keyseq>
100         <insert-candidates>
101           <string>êếềểễệ</string>
102         </insert-candidates>
103       </rule>
104       <rule>
105         <keyseq>
106           <string>#</string>
107         </keyseq>
108         <insert-candidates>
109           <string>ÊẾỀỂỄỆ</string>
110         </insert-candidates>
111       </rule>
112       <rule>
113         <keyseq>
114           <string>4</string>
115         </keyseq>
116         <insert-candidates>
117           <string>ôốồổỗộ</string>
118         </insert-candidates>
119       </rule>
120       <rule>
121         <keyseq>
122           <string>$</string>
123         </keyseq>
124         <insert-candidates>
125           <string>ÔỐỒỔỖỘ</string>
126         </insert-candidates>
127       </rule>
128       <rule>
129         <keyseq>
130           <string>]</string>
131         </keyseq>
132         <insert-candidates>
133           <string>ơớờởỡợ</string>
134         </insert-candidates>
135       </rule>
136       <rule>
137         <keyseq>
138           <string>}</string>
139         </keyseq>
140         <insert-candidates>
141           <string>ƠỚỜỞỠỢ</string>
142         </insert-candidates>
143       </rule>
144       <rule>
145         <keyseq>
146           <string>[</string>
147         </keyseq>
148         <insert-candidates>
149           <string>ưứừửữự</string>
150         </insert-candidates>
151       </rule>
152       <rule>
153         <keyseq>
154           <string>{</string>
155         </keyseq>
156         <insert-candidates>
157           <string>ƯỨỪỬỮỰ</string>
158         </insert-candidates>
159       </rule>
160     </map>
161     <map mname="map-consonant-ext">
162       <rule>
163         <keyseq>
164           <string>0</string>
165         </keyseq>
166         <insert>
167           <integer>273</integer>
168         </insert>
169       </rule>
170       <rule>
171         <keyseq>
172           <string>)</string>
173         </keyseq>
174         <insert>
175           <integer>272</integer>
176         </insert>
177       </rule>
178     </map>
179     <map mname="map-tone-mark">
180       <rule>
181         <keyseq>
182           <string>8</string>
183         </keyseq>
184         <set vname="SELECT">
185           <integer>1</integer>
186         </set>
187         <insert>
188           <integer>49</integer>
189         </insert>
190       </rule>
191       <rule>
192         <keyseq>
193           <string>5</string>
194         </keyseq>
195         <set vname="SELECT">
196           <integer>2</integer>
197         </set>
198         <insert>
199           <integer>50</integer>
200         </insert>
201       </rule>
202       <rule>
203         <keyseq>
204           <string>6</string>
205         </keyseq>
206         <set vname="SELECT">
207           <integer>3</integer>
208         </set>
209         <insert>
210           <integer>51</integer>
211         </insert>
212       </rule>
213       <rule>
214         <keyseq>
215           <string>7</string>
216         </keyseq>
217         <set vname="SELECT">
218           <integer>4</integer>
219         </set>
220         <insert>
221           <integer>52</integer>
222         </insert>
223       </rule>
224       <rule>
225         <keyseq>
226           <string>9</string>
227         </keyseq>
228         <set vname="SELECT">
229           <integer>5</integer>
230         </set>
231         <insert>
232           <integer>53</integer>
233         </insert>
234       </rule>
235     </map>
236     <map mname="map-misc">
237       <rule>
238         <keyseq>
239           <string>=</string>
240         </keyseq>
241         <insert>
242           <integer>8363</integer>
243         </insert>
244       </rule>
245       <rule>
246         <keyseq>
247           <string>==</string>
248         </keyseq>
249         <insert>
250           <integer>61</integer>
251         </insert>
252       </rule>
253       <rule>
254         <keyseq>
255           <list>
256             <symbol>A-1</symbol>
257           </list>
258         </keyseq>
259         <insert>
260           <integer>49</integer>
261         </insert>
262       </rule>
263       <rule>
264         <keyseq>
265           <list>
266             <symbol>A-2</symbol>
267           </list>
268         </keyseq>
269         <insert>
270           <integer>50</integer>
271         </insert>
272       </rule>
273       <rule>
274         <keyseq>
275           <list>
276             <symbol>A-3</symbol>
277           </list>
278         </keyseq>
279         <insert>
280           <integer>51</integer>
281         </insert>
282       </rule>
283       <rule>
284         <keyseq>
285           <list>
286             <symbol>A-4</symbol>
287           </list>
288         </keyseq>
289         <insert>
290           <integer>52</integer>
291         </insert>
292       </rule>
293       <rule>
294         <keyseq>
295           <list>
296             <symbol>A-5</symbol>
297           </list>
298         </keyseq>
299         <insert>
300           <integer>53</integer>
301         </insert>
302       </rule>
303       <rule>
304         <keyseq>
305           <list>
306             <symbol>A-6</symbol>
307           </list>
308         </keyseq>
309         <insert>
310           <integer>54</integer>
311         </insert>
312       </rule>
313       <rule>
314         <keyseq>
315           <list>
316             <symbol>A-7</symbol>
317           </list>
318         </keyseq>
319         <insert>
320           <integer>55</integer>
321         </insert>
322       </rule>
323       <rule>
324         <keyseq>
325           <list>
326             <symbol>A-8</symbol>
327           </list>
328         </keyseq>
329         <insert>
330           <integer>56</integer>
331         </insert>
332       </rule>
333       <rule>
334         <keyseq>
335           <list>
336             <symbol>A-9</symbol>
337           </list>
338         </keyseq>
339         <insert>
340           <integer>57</integer>
341         </insert>
342       </rule>
343       <rule>
344         <keyseq>
345           <list>
346             <symbol>A-0</symbol>
347           </list>
348         </keyseq>
349         <insert>
350           <integer>48</integer>
351         </insert>
352       </rule>
353       <rule>
354         <keyseq>
355           <list>
356             <symbol>A--</symbol>
357           </list>
358         </keyseq>
359         <insert>
360           <integer>45</integer>
361         </insert>
362       </rule>
363       <rule>
364         <keyseq>
365           <list>
366             <symbol>A-=</symbol>
367           </list>
368         </keyseq>
369         <insert>
370           <integer>61</integer>
371         </insert>
372       </rule>
373       <rule>
374         <keyseq>
375           <list>
376             <symbol>A-\</symbol>
377           </list>
378         </keyseq>
379         <insert>
380           <integer>92</integer>
381         </insert>
382       </rule>
383       <rule>
384         <keyseq>
385           <list>
386             <symbol>A-[</symbol>
387           </list>
388         </keyseq>
389         <insert>
390           <integer>91</integer>
391         </insert>
392       </rule>
393       <rule>
394         <keyseq>
395           <list>
396             <symbol>A-]</symbol>
397           </list>
398         </keyseq>
399         <insert>
400           <integer>93</integer>
401         </insert>
402       </rule>
403       <rule>
404         <keyseq>
405           <list>
406             <symbol>A-!</symbol>
407           </list>
408         </keyseq>
409         <insert>
410           <integer>33</integer>
411         </insert>
412       </rule>
413       <rule>
414         <keyseq>
415           <list>
416             <symbol>A-@</symbol>
417           </list>
418         </keyseq>
419         <insert>
420           <integer>64</integer>
421         </insert>
422       </rule>
423       <rule>
424         <keyseq>
425           <list>
426             <symbol>A-#</symbol>
427           </list>
428         </keyseq>
429         <insert>
430           <integer>35</integer>
431         </insert>
432       </rule>
433       <rule>
434         <keyseq>
435           <list>
436             <symbol>A-$</symbol>
437           </list>
438         </keyseq>
439         <insert>
440           <integer>36</integer>
441         </insert>
442       </rule>
443       <rule>
444         <keyseq>
445           <list>
446             <symbol>A-%</symbol>
447           </list>
448         </keyseq>
449         <insert>
450           <integer>37</integer>
451         </insert>
452       </rule>
453       <rule>
454         <keyseq>
455           <list>
456             <symbol>A-^</symbol>
457           </list>
458         </keyseq>
459         <insert>
460           <integer>94</integer>
461         </insert>
462       </rule>
463       <rule>
464         <keyseq>
465           <list>
466             <symbol>A-&amp;</symbol>
467           </list>
468         </keyseq>
469         <insert>
470           <integer>38</integer>
471         </insert>
472       </rule>
473       <rule>
474         <keyseq>
475           <list>
476             <symbol>A-*</symbol>
477           </list>
478         </keyseq>
479         <insert>
480           <integer>42</integer>
481         </insert>
482       </rule>
483       <rule>
484         <keyseq>
485           <list>
486             <symbol>A-(</symbol>
487           </list>
488         </keyseq>
489         <insert>
490           <integer>40</integer>
491         </insert>
492       </rule>
493       <rule>
494         <keyseq>
495           <list>
496             <symbol>A-)</symbol>
497           </list>
498         </keyseq>
499         <insert>
500           <integer>41</integer>
501         </insert>
502       </rule>
503       <rule>
504         <keyseq>
505           <list>
506             <symbol>A-_</symbol>
507           </list>
508         </keyseq>
509         <insert>
510           <integer>95</integer>
511         </insert>
512       </rule>
513       <rule>
514         <keyseq>
515           <list>
516             <symbol>A-+</symbol>
517           </list>
518         </keyseq>
519         <insert>
520           <integer>43</integer>
521         </insert>
522       </rule>
523       <rule>
524         <keyseq>
525           <list>
526             <symbol>A-|</symbol>
527           </list>
528         </keyseq>
529         <insert>
530           <integer>124</integer>
531         </insert>
532       </rule>
533       <rule>
534         <keyseq>
535           <list>
536             <symbol>A-{</symbol>
537           </list>
538         </keyseq>
539         <insert>
540           <integer>123</integer>
541         </insert>
542       </rule>
543       <rule>
544         <keyseq>
545           <list>
546             <symbol>A-}</symbol>
547           </list>
548         </keyseq>
549         <insert>
550           <integer>125</integer>
551         </insert>
552       </rule>
553     </map>
554     <map mname="map-temporary-escape">
555       <rule>
556         <keyseq>
557           <string>22</string>
558         </keyseq>
559         <insert>
560           <string>2</string>
561         </insert>
562       </rule>
563       <rule>
564         <keyseq>
565           <string>@@</string>
566         </keyseq>
567         <insert>
568           <string>@</string>
569         </insert>
570       </rule>
571       <rule>
572         <keyseq>
573           <string>11</string>
574         </keyseq>
575         <insert>
576           <string>1</string>
577         </insert>
578       </rule>
579       <rule>
580         <keyseq>
581           <string>!!</string>
582         </keyseq>
583         <insert>
584           <string>!</string>
585         </insert>
586       </rule>
587       <rule>
588         <keyseq>
589           <string>33</string>
590         </keyseq>
591         <insert>
592           <string>3</string>
593         </insert>
594       </rule>
595       <rule>
596         <keyseq>
597           <string>##</string>
598         </keyseq>
599         <insert>
600           <string>##</string>
601         </insert>
602       </rule>
603       <rule>
604         <keyseq>
605           <string>44</string>
606         </keyseq>
607         <insert>
608           <string>4</string>
609         </insert>
610       </rule>
611       <rule>
612         <keyseq>
613           <string>$$</string>
614         </keyseq>
615         <insert>
616           <string>$</string>
617         </insert>
618       </rule>
619       <rule>
620         <keyseq>
621           <string>]]</string>
622         </keyseq>
623         <insert>
624           <string>]</string>
625         </insert>
626       </rule>
627       <rule>
628         <keyseq>
629           <string>}}</string>
630         </keyseq>
631         <insert>
632           <string>}</string>
633         </insert>
634       </rule>
635       <rule>
636         <keyseq>
637           <string>[[</string>
638         </keyseq>
639         <insert>
640           <string>[</string>
641         </insert>
642       </rule>
643       <rule>
644         <keyseq>
645           <string>{{</string>
646         </keyseq>
647         <insert>
648           <string>{</string>
649         </insert>
650       </rule>
651       <rule>
652         <keyseq>
653           <string>00</string>
654         </keyseq>
655         <insert>
656           <string>0</string>
657         </insert>
658       </rule>
659       <rule>
660         <keyseq>
661           <string>))</string>
662         </keyseq>
663         <insert>
664           <string>)</string>
665         </insert>
666       </rule>
667     </map>
668   </map-list>
669   <state-list>
670     <state sname="state-init">
671       <state-hook>
672         <set vname="C">
673           <char-at>
674             <marker>@-1</marker>
675           </char-at>
676         </set>
677         <set vname="V-1">
678           <integer>0</integer>
679         </set>
680         <set vname="V-2">
681           <integer>0</integer>
682         </set>
683         <set vname="V-3">
684           <integer>0</integer>
685         </set>
686         <set vname="C-AFTER-V">
687           <integer>0</integer>
688         </set>
689         <set vname="SELECT">
690           <integer>0</integer>
691         </set>
692         <set vname="NST">
693           <eq>
694             <surrounding-text-flag/>
695             <integer>-2</integer>
696           </eq>
697         </set>
698       </state-hook>
699       <branch mname="map-consonant">
700         <set vname="C">
701           <char-at>
702             <marker>@-1</marker>
703           </char-at>
704         </set>
705         <cond>
706           <list>
707             <varref vname="NST"/>
708             <shift>
709               <symbol>state-after-c</symbol>
710             </shift>
711           </list>
712         </cond>
713       </branch>
714       <branch mname="map-consonant-ext">
715         <set vname="C">
716           <char-at>
717             <marker>@-1</marker>
718           </char-at>
719         </set>
720         <cond>
721           <list>
722             <varref vname="NST"/>
723             <shift>
724               <symbol>state-after-c</symbol>
725             </shift>
726           </list>
727         </cond>
728       </branch>
729       <branch mname="map-vowel">
730         <mark>
731           <marker>M</marker>
732         </mark>
733         <set vname="V-2">
734           <varref vname="V-1"/>
735         </set>
736         <set vname="V-1">
737           <char-at>
738             <marker>@-1</marker>
739           </char-at>
740         </set>
741         <shift>
742           <symbol>state-after-v</symbol>
743         </shift>
744       </branch>
745       <branch mname="map-vowel-ext">
746         <mark>
747           <marker>M</marker>
748         </mark>
749         <set vname="V-2">
750           <varref vname="V-1"/>
751         </set>
752         <set vname="V-1">
753           <char-at>
754             <marker>@-1</marker>
755           </char-at>
756         </set>
757         <shift>
758           <symbol>state-after-v</symbol>
759         </shift>
760       </branch>
761       <branch mname="map-temporary-escape">
762         <shift>
763           <symbol>state-temporary-escape</symbol>
764         </shift>
765       </branch>
766       <branch mname="map-permanent-escape">
767         <shift>
768           <symbol>state-escape-in-normal-mode</symbol>
769         </shift>
770       </branch>
771       <branch mname="map-misc"/>
772       <branch mname="map-smart-quotes"/>
773     </state>
774     <state sname="state-after-c">
775       <branch mname="map-vowel">
776         <mark>
777           <marker>M</marker>
778         </mark>
779         <set vname="V-2">
780           <varref vname="V-1"/>
781         </set>
782         <set vname="V-1">
783           <char-at>
784             <marker>@-1</marker>
785           </char-at>
786         </set>
787         <shift>
788           <symbol>state-after-v</symbol>
789         </shift>
790       </branch>
791       <branch mname="map-vowel-ext">
792         <mark>
793           <marker>M</marker>
794         </mark>
795         <set vname="V-2">
796           <varref vname="V-1"/>
797         </set>
798         <set vname="V-1">
799           <char-at>
800             <marker>@-1</marker>
801           </char-at>
802         </set>
803         <shift>
804           <symbol>state-after-v</symbol>
805         </shift>
806       </branch>
807     </state>
808     <state sname="state-after-v">
809       <branch mname="map-consonant">
810         <shift>
811           <symbol>state-after-vc</symbol>
812         </shift>
813       </branch>
814       <branch mname="map-consonant-ext">
815         <shift>
816           <symbol>state-after-vc</symbol>
817         </shift>
818       </branch>
819       <branch mname="map-vowel">
820         <mark>
821           <marker>M</marker>
822         </mark>
823         <set vname="V-3">
824           <varref vname="V-2"/>
825         </set>
826         <set vname="V-2">
827           <varref vname="V-1"/>
828         </set>
829         <set vname="V-1">
830           <char-at>
831             <marker>@-1</marker>
832           </char-at>
833         </set>
834         <move>
835           <marker>T</marker>
836         </move>
837         <select>
838           <integer>0</integer>
839         </select>
840         <funcall fname="macro-handle-mark"/>
841         <move>
842           <marker>M</marker>
843         </move>
844       </branch>
845       <branch mname="map-vowel-ext">
846         <mark>
847           <marker>M</marker>
848         </mark>
849         <set vname="V-3">
850           <varref vname="V-2"/>
851         </set>
852         <set vname="V-2">
853           <varref vname="V-1"/>
854         </set>
855         <set vname="V-1">
856           <char-at>
857             <marker>@-1</marker>
858           </char-at>
859         </set>
860         <move>
861           <marker>T</marker>
862         </move>
863         <select>
864           <integer>0</integer>
865         </select>
866         <funcall fname="macro-handle-mark"/>
867         <move>
868           <marker>M</marker>
869         </move>
870       </branch>
871       <branch mname="map-tone-mark">
872         <delete>
873           <marker>@-</marker>
874         </delete>
875         <pushback>
876           <integer>1</integer>
877         </pushback>
878         <shift>
879           <symbol>state-after-t</symbol>
880         </shift>
881       </branch>
882       <branch mname="map-backspace">
883         <delete>
884           <marker>@-</marker>
885         </delete>
886         <cond>
887           <list>
888             <varref vname="V-3"/>
889             <set vname="V-1">
890               <varref vname="V-2"/>
891             </set>
892             <set vname="V-2">
893               <varref vname="V-3"/>
894             </set>
895             <set vname="V-3">
896               <integer>0</integer>
897             </set>
898             <cond>
899               <list>
900                 <gt>
901                   <varref vname="TPLACE"/>
902                   <integer>2</integer>
903                 </gt>
904                 <set vname="SELECT">
905                   <integer>0</integer>
906                 </set>
907               </list>
908             </cond>
909           </list>
910           <list>
911             <varref vname="V-2"/>
912             <set vname="V-1">
913               <varref vname="V-2"/>
914             </set>
915             <set vname="V-2">
916               <integer>0</integer>
917             </set>
918             <cond>
919               <list>
920                 <gt>
921                   <varref vname="TPLACE"/>
922                   <integer>1</integer>
923                 </gt>
924                 <set vname="SELECT">
925                   <integer>0</integer>
926                 </set>
927               </list>
928             </cond>
929           </list>
930           <list>
931             <integer>1</integer>
932             <shift>
933               <symbol>state-init</symbol>
934             </shift>
935           </list>
936         </cond>
937       </branch>
938     </state>
939     <state sname="state-after-vc">
940       <state-hook>
941         <set vname="C-AFTER-V">
942           <integer>1</integer>
943         </set>
944       </state-hook>
945       <branch mname="map-consonant">
946         <add vname="C-AFTER-V">
947           <integer>1</integer>
948         </add>
949       </branch>
950       <branch mname="map-consonant-ext">
951         <add vname="C-AFTER-V">
952           <integer>1</integer>
953         </add>
954       </branch>
955       <branch mname="map-tone-mark">
956         <delete>
957           <marker>@-</marker>
958         </delete>
959         <pushback>
960           <integer>1</integer>
961         </pushback>
962         <shift>
963           <symbol>state-after-t</symbol>
964         </shift>
965       </branch>
966       <branch mname="map-backspace">
967         <delete>
968           <marker>@-</marker>
969         </delete>
970         <sub vname="C-AFTER-V">
971           <integer>1</integer>
972         </sub>
973         <cond>
974           <list>
975             <eq>
976               <varref vname="C-AFTER-V"/>
977               <integer>0</integer>
978             </eq>
979             <shift>
980               <symbol>state-after-v</symbol>
981             </shift>
982           </list>
983         </cond>
984       </branch>
985     </state>
986     <state sname="state-after-t">
987       <state-hook>
988         <set vname="CURRENT-SELECT">
989           <integer>-1</integer>
990         </set>
991       </state-hook>
992       <branch mname="map-tone-mark">
993         <cond>
994           <list>
995             <eq>
996               <varref vname="CURRENT-SELECT"/>
997               <varref vname="SELECT"/>
998             </eq>
999             <move>
1000               <marker>T</marker>
1001             </move>
1002             <select>
1003               <integer>0</integer>
1004             </select>
1005             <move>
1006               <marker>@&gt;</marker>
1007             </move>
1008             <shift>
1009               <symbol>state-temporary-escape</symbol>
1010             </shift>
1011           </list>
1012           <list>
1013             <integer>1</integer>
1014             <delete>
1015               <marker>@-</marker>
1016             </delete>
1017             <funcall fname="macro-handle-mark"/>
1018             <set vname="CURRENT-SELECT">
1019               <varref vname="SELECT"/>
1020             </set>
1021           </list>
1022         </cond>
1023       </branch>
1024       <catch-all-branch>
1025         <cond>
1026           <list>
1027             <varref vname="C-AFTER-V"/>
1028             <shift>
1029               <symbol>state-after-vc</symbol>
1030             </shift>
1031           </list>
1032           <list>
1033             <integer>1</integer>
1034             <shift>
1035               <symbol>state-after-v</symbol>
1036             </shift>
1037           </list>
1038         </cond>
1039       </catch-all-branch>
1040     </state>
1041     <state sname="state-temporary-escape">
1042       <title>en</title>
1043       <state-hook>
1044         <commit/>
1045       </state-hook>
1046       <branch mname="map-alnum">
1047         <commit/>
1048       </branch>
1049     </state>
1050     <state sname="state-escape-in-normal-mode">
1051       <title>EN</title>
1052       <branch mname="map-permanent-escape">
1053         <insert>
1054           <string>\</string>
1055         </insert>
1056         <shift>
1057           <symbol>state-init</symbol>
1058         </shift>
1059       </branch>
1060       <catch-all-branch>
1061         <shift>
1062           <symbol>state-permanent-escape</symbol>
1063         </shift>
1064       </catch-all-branch>
1065     </state>
1066     <state sname="state-permanent-escape">
1067       <title>EN</title>
1068       <state-hook>
1069         <set vname="ESCAPE">
1070           <integer>1</integer>
1071         </set>
1072       </state-hook>
1073       <branch mname="map-permanent-escape">
1074         <shift>
1075           <symbol>state-escape-in-permanent-escape</symbol>
1076         </shift>
1077       </branch>
1078       <catch-all-branch>
1079         <unhandle/>
1080       </catch-all-branch>
1081     </state>
1082     <state sname="state-escape-in-permanent-escape">
1083       <title>Ắ</title>
1084       <branch mname="map-permanent-escape">
1085         <insert>
1086           <string>\</string>
1087         </insert>
1088         <commit/>
1089         <shift>
1090           <symbol>state-permanent-escape</symbol>
1091         </shift>
1092       </branch>
1093     </state>
1094   </state-list>
1095 </input-method>