|
1 {\rtf1\adeflang1025\ansi\ansicpg1252\uc2\adeff0\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe2052\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} |
|
2 {\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f7\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202030204}Helv{\*\falt Arial};} |
|
3 {\f34\fbidi \froman\fcharset1\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} |
|
4 {\fdbmajor\f31501\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;} |
|
5 {\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} |
|
6 {\fdbminor\f31505\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}\'cb\'ce\'cc\'e5{\*\falt SimSun};}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} |
|
7 {\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} |
|
8 {\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} |
|
9 {\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f49\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\f50\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;} |
|
10 {\f52\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f53\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f54\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f55\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);} |
|
11 {\f56\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f57\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f59\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f60\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;} |
|
12 {\f62\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f63\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f64\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f65\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);} |
|
13 {\f66\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f67\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f419\fbidi \fswiss\fcharset238\fprq2 Tahoma CE;}{\f420\fbidi \fswiss\fcharset204\fprq2 Tahoma Cyr;} |
|
14 {\f422\fbidi \fswiss\fcharset161\fprq2 Tahoma Greek;}{\f423\fbidi \fswiss\fcharset162\fprq2 Tahoma Tur;}{\f424\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew);}{\f425\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic);} |
|
15 {\f426\fbidi \fswiss\fcharset186\fprq2 Tahoma Baltic;}{\f427\fbidi \fswiss\fcharset163\fprq2 Tahoma (Vietnamese);}{\f428\fbidi \fswiss\fcharset222\fprq2 Tahoma (Thai);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} |
|
16 {\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} |
|
17 {\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} |
|
18 {\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31520\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;} |
|
19 {\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;} |
|
20 {\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} |
|
21 {\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} |
|
22 {\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} |
|
23 {\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} |
|
24 {\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} |
|
25 {\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31560\fbidi \fnil\fcharset0\fprq2 SimSun Western{\*\falt SimSun};} |
|
26 {\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} |
|
27 {\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} |
|
28 {\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} |
|
29 {\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} |
|
30 {\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; |
|
31 \red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \fs22 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 } |
|
32 \noqfpromote {\stylesheet{\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 \snext0 \sqformat \spriority0 Normal;}{ |
|
33 \s1\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 \rtlch\fcs1 \ab\af1\afs28\alang1025 \ltrch\fcs0 \b\f1\fs28\lang1033\langfe2057\kerning28\cgrid\langnp1033\langfenp2057 \sbasedon0 \snext0 \slink15 \sqformat |
|
34 heading 1;}{\s2\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \ab\ai\af1\afs24\alang1025 \ltrch\fcs0 \b\i\f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 |
|
35 \sbasedon0 \snext0 \slink16 \sqformat heading 2;}{\s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0 \rtlch\fcs1 \af1\afs24\alang1025 \ltrch\fcs0 \f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 |
|
36 \sbasedon0 \snext0 \slink17 \sqformat heading 3;}{\s4\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel3\rin0\lin0\itap0 \rtlch\fcs1 \ab\af1\afs24\alang1025 \ltrch\fcs0 \b\f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 |
|
37 \sbasedon0 \snext0 \slink18 \sqformat heading 4;}{\s5\ql \li0\ri0\sb240\sa60\widctlpar\wrapdefault\faauto\outlinelevel4\rin0\lin0\itap0 \rtlch\fcs1 \af1\afs22\alang1025 \ltrch\fcs0 \f1\fs22\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 |
|
38 \sbasedon0 \snext0 \slink19 \sqformat heading 5;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\* |
|
39 \ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1 |
|
40 \widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe2052\cgrid\langnp1033\langfenp2052 \snext11 \ssemihidden \sunhideused \sqformat Normal Table;}{\*\cs15 \additive |
|
41 \rtlch\fcs1 \ab\af31503\afs32 \ltrch\fcs0 \b\fs32\lang0\langfe2057\kerning32\loch\f31502\hich\af31502\dbch\af31501\langfenp2057 \sbasedon10 \slink1 \slocked \spriority9 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \ab\ai\af31503\afs28 \ltrch\fcs0 |
|
42 \b\i\fs28\lang0\langfe2057\loch\f31502\hich\af31502\dbch\af31501\langfenp2057 \sbasedon10 \slink2 \slocked \ssemihidden \spriority9 Heading 2 Char;}{\*\cs17 \additive \rtlch\fcs1 \ab\af31503\afs26 \ltrch\fcs0 |
|
43 \b\fs26\lang0\langfe2057\loch\f31502\hich\af31502\dbch\af31501\langfenp2057 \sbasedon10 \slink3 \slocked \ssemihidden \spriority9 Heading 3 Char;}{\*\cs18 \additive \rtlch\fcs1 \ab\af31507\afs28 \ltrch\fcs0 |
|
44 \b\fs28\lang0\langfe2057\loch\f31506\hich\af31506\dbch\af31505\langfenp2057 \sbasedon10 \slink4 \slocked \ssemihidden \spriority9 Heading 4 Char;}{\*\cs19 \additive \rtlch\fcs1 \ab\ai\af31507\afs26 \ltrch\fcs0 |
|
45 \b\i\fs26\lang0\langfe2057\loch\f31506\hich\af31506\dbch\af31505\langfenp2057 \sbasedon10 \slink5 \slocked \ssemihidden \spriority9 Heading 5 Char;}{\s20\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20\alang1025 |
|
46 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 \sbasedon0 \snext20 \slink21 \ssemihidden footnote text;}{\*\cs21 \additive \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang0\langfe2057\langfenp2057 |
|
47 \sbasedon10 \slink20 \slocked \ssemihidden Footnote Text Char;}{\*\cs22 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \super \sbasedon10 \ssemihidden footnote reference;}{\s23\ql \li0\ri0\sa120\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 |
|
48 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 \sbasedon0 \snext23 \slink24 Body Text;}{\*\cs24 \additive \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang0\langfe2057\langfenp2057 |
|
49 \sbasedon10 \slink23 \slocked \ssemihidden Body Text Char;}{\s25\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs16\alang1025 \ltrch\fcs0 \f38\fs16\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 |
|
50 \sbasedon0 \snext25 \slink26 \ssemihidden \sunhideused \styrsid16122098 Document Map;}{\*\cs26 \additive \rtlch\fcs1 \af38\afs16 \ltrch\fcs0 \f38\fs16\lang0\langfe2057\langfenp2057 \sbasedon10 \slink25 \slocked \ssemihidden \styrsid16122098 |
|
51 Document Map Char;}{\s27\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 |
|
52 \sbasedon0 \snext27 \slink28 \ssemihidden \sunhideused \styrsid16122098 header;}{\*\cs28 \additive \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang0\langfe2057\langfenp2057 \sbasedon10 \slink27 \slocked \ssemihidden \styrsid16122098 Header Char;}{ |
|
53 \s29\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 |
|
54 \sbasedon0 \snext29 \slink30 \ssemihidden \sunhideused \styrsid16122098 footer;}{\*\cs30 \additive \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang0\langfe2057\langfenp2057 \sbasedon10 \slink29 \slocked \ssemihidden \styrsid16122098 Footer Char;}} |
|
55 {\*\listtable{\list\listtemplateid1003262996\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01*;}{\levelnumbers;}\hres0\chhres0 }{\listname ;}\listid-2} |
|
56 {\list\listtemplateid-2031170708\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\fbias0\hres0\chhres0 |
|
57 \fi-283\li283\lin283 }{\listname ;}\listid669527146}{\list\listtemplateid-1917300198\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'02\'00.;}{\levelnumbers\'01;} |
|
58 \rtlch\fcs1 \af0 \ltrch\fcs0 \f0\fbias0\hres0\chhres0 \fi-283\li283\lin283 }{\listname ;}\listid851996292}{\list\listtemplateid-1917300198\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0 |
|
59 \levelindent283{\leveltext\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\fbias0\hres0\chhres0 \fi-283\li283\lin283 }{\listname ;}\listid1621303876}{\list\listtemplateid-2031170708\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0 |
|
60 \leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'02\'00.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\fbias0\hres0\chhres0 \fi-283\li283\lin283 }{\listname ;}\listid1629625210}}{\*\listoverridetable |
|
61 {\listoverride\listid1621303876\listoverridecount0\ls1}{\listoverride\listid-2\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext |
|
62 \'01{\uc1\u-3913 ?};}{\levelnumbers;}\f3\fbias0 \fi-283\li283\lin283 }}\ls2}{\listoverride\listid851996292\listoverridecount0\ls3}{\listoverride\listid1629625210\listoverridecount1{\lfolevel\listoverridestartat\levelstartat1}\ls4}{\listoverride\listid-2 |
|
63 \listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelold\levelspace0\levelindent283{\leveltext\'01{\uc1\u-3913 ?};}{\levelnumbers;}\f3\fbias0 \fi-283\li283\lin283 }}\ls5} |
|
64 {\listoverride\listid669527146\listoverridecount1{\lfolevel\listoverridestartat\levelstartat1}\ls6}}{\*\revtbl {Unknown;}{x120li;}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid4815261\rsid16087510\rsid16122098}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0 |
|
65 \msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Preferred Customer}{\operator x120li}{\creatim\yr1999\mo3\dy16\hr14\min36}{\revtim\yr2009\mo5\dy19\hr15\min49}{\printim\yr1999\mo3\dy17\hr16\min34} |
|
66 {\version10}{\edmins24}{\nofpages7}{\nofwords3340}{\nofchars18026}{\*\company Dell Computer Corporation}{\nofcharsws21324}{\vern32895}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}} |
|
67 \paperw11906\paperh16838\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect |
|
68 \widowctrl\ftnbj\aenddoc\revisions\trackmoves1\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0 |
|
69 \noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\formshade\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\nolnhtadjtbl\rsidroot4815261 \fet0{\*\wgrffmtfilter 013f} |
|
70 \ilfomacatclnup0{\*\ftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
71 \insrsid16087510 \chftnsep |
|
72 \par }}{\*\ftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16087510 |
|
73 \chftnsepc |
|
74 \par }}{\*\aftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16087510 |
|
75 \chftnsep |
|
76 \par }}{\*\aftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16087510 |
|
77 \chftnsepc |
|
78 \par }}\ltrpar \sectd \ltrsect\linex0\headery709\footery709\colsx709\endnhere\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl3 |
|
79 \pndec\pnstart1\pnindent720\pnhang {\pntxta \hich .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta \hich )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang |
|
80 {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb \hich (}{\pntxta \hich )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang |
|
81 {\pntxtb \hich (}{\pntxta \hich )}}\pard\plain \ltrpar\s1\qj \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \ab\af1\afs28\alang1025 \ltrch\fcs0 |
|
82 \b\f1\fs28\lang1033\langfe2057\kerning28\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af1 \ltrch\fcs0 \insrsid4815261 Creating CHARCONV plug-in DLLs |
|
83 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
84 Each CHARCONV plug-in DLL contains the necessary information on how to convert text between Unicode and a particular character set (such as ISO-8859-2, GB-2312-80, etc) - the latter henceforth being referred to as the }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 |
|
85 \b\insrsid4815261 foreign character set}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 . Creating a plug-in DLL is a two-stage process, as follows: |
|
86 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
87 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \hich\af0\dbch\af0\loch\f0 1.\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0 |
|
88 \pndec\pnstart1\pnindent283\pnhang {\pntxta \hich .}}\faauto\ls4\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 The CNVTOOL program is run to generate a C++ file from two text files which are known as the }{\rtlch\fcs1 |
|
89 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 source file }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 and the }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 control file}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 . |
|
90 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \hich\af0\dbch\af0\loch\f0 2.\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0 |
|
91 \pndec\pnstart1\pnindent283\pnhang {\pntxta \hich .}}\faauto\ls4\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 The generated C++ file is compiled along with another (hand-written) C++ file to produce the DLL. |
|
92 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
93 \par These source file and the control file are both case insensitive and permit comments beginning with a \'93#\'94 character and extending to the end of the line. They also permit blank lines and leading and trailing white-space on non-blank lines. |
|
94 \par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \ab\ai\af1\afs24\alang1025 \ltrch\fcs0 \b\i\f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 |
|
95 \af1 \ltrch\fcs0 \insrsid4815261 Using CNVTOOL |
|
96 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
97 CNVTOOL is called from the command-line as follows: |
|
98 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
99 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 CNVTOOL }{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <control-file> <source-file> <output-C++-file> |
|
100 \par }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
101 \par It also supports the following flags, which may be positioned anywhere in the parameter list (each has a short and a long form, shown below separated by a \lquote |\rquote ): |
|
102 \par |
|
103 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
104 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 -s}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 | }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
105 \b\f2\insrsid4815261 -generateSourceCode}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
106 - this should now always be used. (Not using it will cause CNVTOOL to generate an old-style binary conversion-data file - this is deprecated, although still supported for backwards compatibility.) |
|
107 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
108 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 -c}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 | }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
109 \b\f2\insrsid4815261 -columns(}{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <number-of-columns>}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 : }{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <column-of-foreign-character-set-codes> |
|
110 }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 , }{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <column-of-Unicode-codes>}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 )}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
111 - this should be used if the source file consists of a non-standard number of columns, or if the columns are in a non-standard order (see \'93The format of the source file\'94 below). \'931\'94 (rather than \'930\'94 |
|
112 ) is the first column. If this flag is not used, then }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 -columns(2: 1, 2)}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 is assumed. |
|
113 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
114 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 -r}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 | }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
115 \b\f2\insrsid4815261 -omitReplacementForUnconvertibleUnicodeCharacters}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 - this should be used if the replacement for unconvertible Unicode characters sp |
|
116 ecified in the control file is not actually going to be used by the plug-in DLL. (This flag can only be used if }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 -generateSourceCode}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 is also used.) |
|
117 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
118 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 -p}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 | }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
119 \b\f2\insrsid4815261 -cutOutAnyPrivateUseUnicodeCharacterSlotsBeingUsed}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 - if this is not used and one or more private-use Unicode character slots }{\rtlch\fcs1 \ai\af0 \ltrch\fcs0 \i\insrsid4815261 are}{ |
|
120 \rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 being used, a warning is generated. |
|
121 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
122 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 -u}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 | }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
123 \b\f2\insrsid4815261 -sourceFilesToSubtract(}{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <source-file-1>}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 , }{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <source-file-2>}{\rtlch\fcs1 |
|
124 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 , ...)}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 - this is for use when only a subset of the actual source file is to be used, the conversion pairs contained in the source |
|
125 files listed under this flag being subtracted from the conversion pairs obtained from the actual source file. |
|
126 \par }\pard\plain \ltrpar\s2\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \ab\ai\af1\afs24\alang1025 \ltrch\fcs0 \b\i\f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 |
|
127 \af1 \ltrch\fcs0 \insrsid4815261 The plug-in DLL |
|
128 \par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af1\afs24\alang1025 \ltrch\fcs0 \f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af1 |
|
129 \ltrch\fcs0 \insrsid4815261 The interface |
|
130 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
131 The interface to which the plug-in DLL must conform is defined in \\epoc32\\include\\CONVPLUG.H which should be }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 #include}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
132 -d into any C++ files implementing the exported functions of this interface. The implementations of the eight reserved functions should do nothing - i.e. have empty function bodies. The MMP file used to build the actual plug-in DLL should specify the }{ |
|
133 \rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 targetpath}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 , }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 targettype}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 , }{\rtlch\fcs1 \ab\af2 |
|
134 \ltrch\fcs0 \b\f2\insrsid4815261 uid}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 and }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 deffile}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 keywords as follows: |
|
135 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
136 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 targetpath\tab \tab \\system\\charconv |
|
137 \par |
|
138 \par targettype\tab \tab dll |
|
139 \par |
|
140 \par uid\tab \tab \tab 0x1000601a 0x}{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <UID-in-hexadecimal>}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 |
|
141 \par |
|
142 \par #if defined(WINS) |
|
143 \par deffile\tab \tab \\epoc32\\release\\wins\\CONVPLUG.DEF |
|
144 \par #elif defined(MARM) |
|
145 \par deffile\tab \tab \\epoc32\\release\\marm\\CONVPLUG.DEF |
|
146 \par #else |
|
147 \par error |
|
148 \par #endif}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
149 \par |
|
150 \par The second of the two UIDs (Universal IDentifiers) specified in the MMP file must be a number allocated by Symbian specifically for the required foreign character set. The first UID must have the value 0x1000601a. |
|
151 \par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af1\afs24\alang1025 \ltrch\fcs0 \f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af1 |
|
152 \ltrch\fcs0 \insrsid4815261 Using the data structures generated by CNVTOOL |
|
153 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
154 The C++ file generated by CNVTOOL contains two things: an instance of a }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 SCnvConversionData}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 data structure (this data structure is defined in \\epoc32\\include |
|
155 \\CONVDATA.H), and a function returning a descriptor which is the replacement for unconvertible Unicode characters. These two things can be accessed from hand-written C++ files by }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 #include}{\rtlch\fcs1 |
|
156 \af0 \ltrch\fcs0 \insrsid4815261 -ing \\epoc32\\include\\CONVGENERATEDCPP.H. (Note that if the CNVTOOL command-line included the }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 -omitReplacementForUnconvertibleUnicodeCharacters}{\rtlch\fcs1 \af0 |
|
157 \ltrch\fcs0 \insrsid4815261 flag, then the descriptor-returning function cannot be used.) |
|
158 \par There are a number of utility functions that can be called by }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 ConvertFromUnicode}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 and }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 ConvertToUnicode}{ |
|
159 \rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 . The }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 CCnvCharacterSetConverter}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 class (defined in \\epoc32\\include\\CHARCONV. |
|
160 H) provides the two most basic of these utility functions which are its static member functions }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 DoConvertFromUnicode}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 and }{\rtlch\fcs1 \af2 \ltrch\fcs0 |
|
161 \f2\insrsid4815261 DoConvertToUnicode}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 . The }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 CnvUtilities}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 class (defined in \\epoc32\\include\\ |
|
162 CONVUTILS.H and whose code is in CONVUTILS.DLL) provides some other utility functions which are of use for more complex foreign character sets, including, among other types of character set, }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 modal}{ |
|
163 \rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 character sets. (Modal character sets are those where the interpretation of a given byte of data is dependent on the current mode, mode changing being performed by certain defined }{\rtlch\fcs1 \ab\af0 |
|
164 \ltrch\fcs0 \b\insrsid4815261 escape sequences}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 which occur in the byte stream.) |
|
165 \par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af1\afs24\alang1025 \ltrch\fcs0 \f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af1 |
|
166 \ltrch\fcs0 \insrsid4815261 Requirements of the behaviour of the two conversion functions |
|
167 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
168 The two conversion functions in the DLL interface (}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 ConvertFromUnicode}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 and }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 ConvertToUnicode}{\rtlch\fcs1 |
|
169 \af0 \ltrch\fcs0 \insrsid4815261 ) must fulfill the following behavioural requirements. They must return either a negative error code in }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 CCnvCharacterSetConverter::TError}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
170 \insrsid4815261 or the number of elements and the end of the input descriptor which have not been converted, either because the out |
|
171 put descriptor is full, or because there is a truncated sequence at the end of the input descriptor, e.g. only the first half of a Unicode surrogate pair, or only the first byte of a multi-byte foreign-character-set character code, or a truncated escape s |
|
172 equence of a modal foreign character set. The functions should cope without returning an error if the output descriptor is too short or if there is a truncated sequence at the end of the input descriptor, although if the input descriptor consists }{ |
|
173 \rtlch\fcs1 \ai\af0 \ltrch\fcs0 \i\insrsid4815261 purely}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 of a truncated sequence, they should return }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 CCnvCharacterSetConverter::EErrorIllFormedInput}{ |
|
174 \rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 . |
|
175 \par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af1\afs24\alang1025 \ltrch\fcs0 \f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af1 |
|
176 \ltrch\fcs0 \insrsid4815261 Test code |
|
177 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
178 It is obviously important to write code to test the plug-in DLL. This can be based on some of CHARCONV\rquote s own test code which can be found in \\charconv\\test\\source\\main (if access to this source directory is available). |
|
179 \par }\pard\plain \ltrpar\s2\qj \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \ab\ai\af1\afs24\alang1025 \ltrch\fcs0 \b\i\f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 |
|
180 \af1 \ltrch\fcs0 \insrsid4815261 The format of the source file |
|
181 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
182 The format of the source file is relatively straightforward. Each line consists of two hexadecimal numbers separated by white-space, each number being prefixed with }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 0x}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
183 \insrsid4815261 . The first number is the encoding of a character in the foreign character set, and the second is the Unicode encoding of the same character. |
|
184 \par A number of files in this format are already available from The Unicode Consortium - either from the CD that comes with the book }{\rtlch\fcs1 \ai\af0 \ltrch\fcs0 \i\insrsid4815261 The Unicode Standard, Version 2.0}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
185 \insrsid4815261 , or from ftp://ftp.unicode.org/Public/MAPPINGS/ (the latter will probably have more up-to-date versions of these files than the former). |
|
186 \par In some cases the foreign character codes that appear in thes |
|
187 e text files need to be processed in some way before being used in the binary output file. Specifying how they should be processed is done by including a line of the following format in the source file: |
|
188 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
189 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 SET_FOREIGN_CHARACTER_CODE_PROCESSING_CODE}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 }{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 [Perl-code]}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
190 \insrsid4815261 |
|
191 \par |
|
192 \par This line affects all lines in the source file beneath it until the next such line. If nothing other than white-space appears after }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 SET_FOREIGN_CHARACTER_CODE_PROCESSING_CODE}{\rtlch\fcs1 \af0 |
|
193 \ltrch\fcs0 \insrsid4815261 , the foreign character codes in the subsequent lines are used unprocessed (just as they are if }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 SET_FOREIGN_CHARACTER_CODE_PROCESSING_CODE}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
194 \insrsid4815261 is not used at all). The Perl code must return a number using the variable }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 $foreignCharacterCode}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
195 as its input parameter. As an example, if the high-bit of each foreign character is off in the source file but is required to be on in the output file, the Perl code (assuming the foreign character set uses only one byte for each character) would be }{ |
|
196 \rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 return $foreignCharacterCode|0x80;}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 . |
|
197 \par }\pard\plain \ltrpar\s2\qj \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \ab\ai\af1\afs24\alang1025 \ltrch\fcs0 \b\i\f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 |
|
198 \af1 \ltrch\fcs0 \insrsid4815261 The format of the control file |
|
199 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
200 The format of the control file is somewhat more complicated than that of the source file. There are four sections to the control file: the }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 header}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 , the }{ |
|
201 \rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 foreign variable-byte data}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 , the }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 foreign-to-Unicode data }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
202 and the }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 Unicode-to-foreign data}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 . |
|
203 \par }\pard\plain \ltrpar\s3\qj \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af1\afs24\alang1025 \ltrch\fcs0 \f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af1 |
|
204 \ltrch\fcs0 \insrsid4815261 The format of the header |
|
205 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
206 The header consists of five lines in fixed order. Their format is as follows (alternatives are separated by a }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 |}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
207 , single space characters represent single or multiple white-space characters): |
|
208 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
209 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 UID}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 0x}{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <UID-in-hexadecimal>}{\rtlch\fcs1 |
|
210 \af2 \ltrch\fcs0 \f2\insrsid4815261 |
|
211 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 Endianness Unspecified}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 |}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 FixedLittleEndian}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 |}{ |
|
212 \rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 FixedBigEndian}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 |
|
213 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 ReplacementForUnconvertibleUnicodeCharacters }{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <see-below>}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 |
|
214 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 ForeignCharacterCodeProcessingCode }{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <see-below>}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
215 \par |
|
216 \par }\pard \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 The value of }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 UID}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
217 \insrsid4815261 (Universal IDentifier) must be a number allocated by Symbian specifically for the required foreign character set. This may, and should, on pain of a warning being generated, be omitted if }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
218 \b\f2\insrsid4815261 -generateSourceCode}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 is used on the CNVTOOL command-line - instead this UID needs to be specified in the MMP file. The value of }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 |
|
219 Endianness}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 is only an issue for foreign character sets where single characters may be encoded by more than one byte. The value of }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 |
|
220 ReplacementForUnconvertibleUnicodeCharacters}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 is a series of one or more hexadecimal numbers (not greater than 0xff) separated by white-space, each prefixed with }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
221 \b\f2\insrsid4815261 0x}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 . These byte values are output for each Unicode character that has no equivalent in the foreign character set (when converting from foreign to Unicode). |
|
222 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 ForeignCharacterCodeProcessingCode}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 is now obsolete and no longer has any effect. It can safely be omitted from the cont |
|
223 rol file. (Using it will generate a warning from the Perl script). |
|
224 \par }\pard\plain \ltrpar\s3\qj \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af1\afs24\alang1025 \ltrch\fcs0 \f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af1 |
|
225 \ltrch\fcs0 \insrsid4815261 The format of the foreign variable-byte data |
|
226 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
227 This section begins and ends with the following two lines, respectively: |
|
228 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
229 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 StartForeignVariableByteData}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
230 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 EndForeignVariableByteData}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
231 \par |
|
232 \par }\pard \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 In between these two lines are one or more lines, each consisting of two hexadecimal numbers (each prefixed with }{ |
|
233 \rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 0x}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
234 and not greater than 0xff) followed by a decimal number - all three are separated by white-space. Each of these lines indicates how many bytes make up a |
|
235 foreign character code for a given range of values for the initial foreign byte. The two hexadecimal numbers are the start and end of the range of values for the initial foreign byte (inclusive), and the decimal number is the number of }{\rtlch\fcs1 |
|
236 \ai\af0 \ltrch\fcs0 \i\insrsid4815261 subsequent}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 bytes. The way these bytes are put together to make the foreign character code is determined by the value of }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
237 \b\f2\insrsid4815261 Endianness}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 in the header of the control file. As an example - if the foreign character set uses only a single byte per character and it\rquote s first character ha |
|
238 s code 0x07 and its last character has code 0xe6, the foreign variable-byte data would be: |
|
239 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
240 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 StartForeignVariableByteData |
|
241 \par 0x07 0xe6 0}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
242 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 EndForeignVariableByteData}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
243 \par }\pard\plain \ltrpar\s3\qj \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af1\afs24\alang1025 \ltrch\fcs0 \f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af1 |
|
244 \ltrch\fcs0 \insrsid4815261 The format of the foreign-to-Unicode data |
|
245 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
246 This section begins and ends with the following two lines, respectively: |
|
247 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
248 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 StartForeignToUnicodeData}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
249 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 EndForeignToUnicodeData}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
250 \par |
|
251 \par In between these two lines are one or more of lines in }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 format A}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 (defined below). These may be optionally followed by one or more of lines in }{\rtlch\fcs1 |
|
252 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 format B}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 (defined below), in which case the lines in format A and format B are separated by the line: |
|
253 \par |
|
254 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 ConflictResolution}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
255 \par |
|
256 \par }\pard \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
257 Each line in format A indicates the conversion algorithm to be used for a particular range of foreign character codes. There are four possible conversion algorithms: |
|
258 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
259 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \hich\af0\dbch\af0\loch\f0 1.\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0 |
|
260 \pndec\pnstart1\pnindent283\pnhang {\pntxta \hich .}}\faauto\ls6\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 direct}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
261 - this is where each character in the range has the same encoding in Unicode as in the foreign character set, |
|
262 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \hich\af0\dbch\af0\loch\f0 2.\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0 |
|
263 \pndec\pnstart1\pnindent283\pnhang {\pntxta \hich .}}\faauto\ls6\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 offset}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
264 - this is where the offset from the foreign encoding to the Unicode encoding is the same for each character in the range, |
|
265 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \hich\af0\dbch\af0\loch\f0 3.\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0 |
|
266 \pndec\pnstart1\pnindent283\pnhang {\pntxta \hich .}}\faauto\ls6\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 indexed table (16}{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 |
|
267 \b\cf0\revised\revauth1\revdttm1188404203\insrsid16122098 }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\cf0\revised\revauth1\revdttm1188404204\insrsid16122098 and}{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\cf0\revised\revauth1\revdttm1188404203\insrsid16122098 32}{ |
|
268 \rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 )}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 }{\rtlch\fcs1 \af7 \ltrch\fcs0 \f7\cf1\lang2057\langfe2057\langnp2057\insrsid4815261 |
|
269 indexed tables map a contiguous range of source codes on to a random collection of destination codes. So they require the source code range to be contiguous. They are smaller than the keyed t |
|
270 ables, because they don't need to represent each source code, but are much bigger than direct or offset tables, because they do need to represent each destination code. They are much faster than keyed tables, because finding the source-destination mapping |
|
271 is just a question of indexing into the table.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 The 16 refers to the fact that each source code should be no bigger than 16 bits.}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
272 \cf0\revised\revauth1\revdttm1188404204\insrsid16122098 For source code greater than 0xFFFF, use 32 bit indexed table.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \deleted\revauthdel1\revdttmdel1188404204\insrsid4815261\delrsid16122098 ,}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
273 \insrsid4815261 |
|
274 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \hich\af0\dbch\af0\loch\f0 4.\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0 |
|
275 \pndec\pnstart1\pnindent283\pnhang {\pntxta \hich .}}\faauto\ls6\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 keyed table (16-16}{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 |
|
276 \b\cf0\revised\revauth1\revdttm1188404204\insrsid16122098 and 32-32}{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 )}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 - }{\rtlch\fcs1 \af7 \ltrch\fcs0 |
|
277 \f7\cf1\lang2057\langfe2057\langnp2057\insrsid4815261 keyed tables can map a sparse collection of source codes onto a random collection of destination cod |
|
278 es. So they are the most flexible. They do not require that the range of source codes is contiguous. But they are bigger than offset or direct, because the source-destination mapping needs to be explicitly represented for each character. They are also th |
|
279 e slowest, because finding the source-destination mapping of interest requires a binary search through the table.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
280 The 16 refers to mapping, the source codes and the destination codes are each no more than 16 bits.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404206\insrsid16087510 |
|
281 For source codes and destination codes greater than 0xFFFF, use 32 bit keyed table.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
282 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \hich\af0\dbch\af0\loch\f0 5.\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0 |
|
283 \pndec\pnstart1\pnindent283\pnhang {\pntxta \hich .}}\faauto\ls6\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 keyed indexed table (16}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 -16}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
284 \cf0\revised\revauth1\revdttm1188404206\insrsid16087510 and 32-32}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 ) \endash keyed tables of indexed tables are a sparse collection of indexed tables. So, if the charset looked like: |
|
285 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
286 \par }\pard \ltrpar\qj \fi283\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 source\tab destination |
|
287 \par 1\tab \tab 34 |
|
288 \par 2\tab \tab 25 |
|
289 \par 3\tab \tab 75 |
|
290 \par 4\tab \tab 32 |
|
291 \par 10\tab \tab 85 |
|
292 \par 11\tab \tab 23 |
|
293 \par 12\tab \tab 56 |
|
294 \par 25\tab \tab 43 |
|
295 \par 26\tab \tab 86 |
|
296 \par 27\tab \tab 27 |
|
297 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
298 \par }\pard \ltrpar\qj \li283\ri0\widctlpar\wrapdefault\faauto\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
299 ...then we could say that the source range consists of 3 sets of contiguous sub-ranges, (1-4), (10-12), (25-27). For each of these sub-ranges we can build an indexed table, then we build a keyed table which is used to find the indexed table of interest. F |
|
300 inding the indexed table is a binary search, but once we have it finding the mapping is just indexing into the table. This algorithm takes a parameter value (or none) which is explained in the following section. |
|
301 \par |
|
302 \par These tables are highly flexible but give u |
|
303 p a degree of control. Contiguous sub-ranges are made into index tables even if the values inside those ranges could be offset or direct ranges. To minimize that risk, ranges that are offset or direct, should be specified separately. Depending on the s |
|
304 ource data set, this algorithm could produce a large number of ranges, to reduce the risk of this happening; the minimum range size parameter is used (see description below). |
|
305 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
306 \par Lines in format A contains the following fields, each separated by white-space: |
|
307 \par |
|
308 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
309 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 include-priority (not currently used) - a decimal number |
|
310 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
311 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 search-priority (not currently used) - a decimal number |
|
312 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
313 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 first input character code in the range - a hexadecimal number prefixed with }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
314 \b\f2\insrsid4815261 0x}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
315 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
316 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 last input character code in the range - a hexadecimal number prefixed with }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
317 \b\f2\insrsid4815261 0x}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
318 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
319 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 algorithm - one of }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 Direct}{\rtlch\fcs1 \af2 \ltrch\fcs0 |
|
320 \f2\insrsid4815261 |}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 Offset}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 |}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 IndexedTable16}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 |}{ |
|
321 \rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 KeyedTable1616| KeyedTable16OfIndexedTables16}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf0\revised\revauth1\revdttm1188404207\insrsid16087510 |}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
322 \b\f2\cf0\revised\revauth1\revdttm1188404207\insrsid16087510 IndexedTable}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf0\revised\revauth1\revdttm1188404207\insrsid16087510 32}{\rtlch\fcs1 \af2 \ltrch\fcs0 |
|
323 \f2\cf0\revised\revauth1\revdttm1188404207\insrsid16087510 |}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf0\revised\revauth1\revdttm1188404207\insrsid16087510 KeyedTable}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
324 \b\f2\cf0\revised\revauth1\revdttm1188404207\insrsid16087510 3232}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf0\revised\revauth1\revdttm1188404207\insrsid16087510 | KeyedTable}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
325 \b\f2\cf0\revised\revauth1\revdttm1188404207\insrsid16087510 32}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf0\revised\revauth1\revdttm1188404207\insrsid16087510 OfIndexedTables}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
326 \b\f2\cf0\revised\revauth1\revdttm1188404207\insrsid16087510 32}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
327 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
328 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 parameters - Applicable only to the KeyedTable16OfIndexedTables16 }{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
329 \cf0\revised\revauth1\revdttm1188404207\insrsid16087510 and }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404207\insrsid16087510 KeyedTable}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404207\insrsid16087510 32}{ |
|
330 \rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404207\insrsid16087510 OfIndexedTables}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404207\insrsid16087510 32}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
331 \cf0\revised\revauth1\revdttm1188404207\insrsid16087510 }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 algorithm, for all other algorithms set this to }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 \{\}}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
332 \insrsid4815261 . For the KeyedTable16OfIndexedTables16}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404207\insrsid16087510 and }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404207\insrsid16087510 KeyedTable}{ |
|
333 \rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404207\insrsid16087510 32}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404207\insrsid16087510 OfIndexedTables}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
334 \cf0\revised\revauth1\revdttm1188404207\insrsid16087510 32}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 , the parameter value is }{\rtlch\fcs1 \af0 \ltrch\fcs0 \deleted\revauthdel1\revdttmdel1188404207\insrsid4815261\delrsid16087510 is }{\rtlch\fcs1 |
|
335 \af0 \ltrch\fcs0 \insrsid4815261 the minimum number of contiguous source entries that may be present in each of the indexed tables - to prevent the tool from generating, at worst an N N indexed tables, each containing a s |
|
336 ingle entry, if the source charset consists of N characters, none of which are contiguous. |
|
337 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
338 \par }\pard \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 Format B is two hexadecimal numbers prefixed with }{\rtlch\fcs1 \ab\af2 |
|
339 \ltrch\fcs0 \b\f2\insrsid4815261 0x}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 , separated by white-space. The first of these is a foreign character code which has multiple equivalents in Uni |
|
340 code (according to the data in the source file), and the second is the code of the preferred Unicode character to which the foreign character should be converted. |
|
341 \par }\pard\plain \ltrpar\s3\qj \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\outlinelevel2\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af1\afs24\alang1025 \ltrch\fcs0 |
|
342 \f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af1 \ltrch\fcs0 \insrsid4815261 The format of the Unicode-to-foreign data |
|
343 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 { |
|
344 \rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 As will be seen, this section is very similar to the foreign-to-Unicode data. It begins and ends with the following two lines, respectively: |
|
345 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
346 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 StartUnicodeToForeignData}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
347 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 EndUnicodeToForeignData}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
348 \par |
|
349 \par In between these two lines are one or more of lines in }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 format C}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 (defined below). These may be optionally followed by one or more of lines in }{\rtlch\fcs1 |
|
350 \ab\af0 \ltrch\fcs0 \b\insrsid4815261 format D}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 (defined below), in which case the lines in format C and format D are separated by the line: |
|
351 \par |
|
352 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 ConflictResolution}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
353 \par |
|
354 \par }\pard \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 Format C is very similar to format A with one exception |
|
355 , which is an additional field to specify the size of the output character code in bytes (as this is a }{\rtlch\fcs1 \ai\af0 \ltrch\fcs0 \i\insrsid4815261 foreign}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
356 character code). Each line in format C indicates the conversion algorithm to be used for a particular range of Unicode character codes. Lines in format C contains the following fields, each separated by white-space: |
|
357 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
358 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
359 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 include-priority (not currently used) - a decimal number |
|
360 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
361 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 search-priority (not currently used) - a decimal number |
|
362 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
363 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 first input character code in the range - a hexadecimal number prefixed with }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
364 \b\f2\insrsid4815261 0x}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
365 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
366 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 last input character code in the range - a hexadecimal number prefixed with }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
367 \b\f2\insrsid4815261 0x}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
368 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
369 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 algorithm - one of }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 Direct}{\rtlch\fcs1 \af2 \ltrch\fcs0 |
|
370 \f2\insrsid4815261 |}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 Offset}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 |}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 IndexedTable16}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 |}{ |
|
371 \rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 KeyedTable1616| KeyedTable16OfIndexedTables16}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf0\revised\revauth1\revdttm1188404208\insrsid16087510 |}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
372 \b\f2\cf0\revised\revauth1\revdttm1188404208\insrsid16087510 IndexedTable}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf0\revised\revauth1\revdttm1188404208\insrsid16087510 32}{\rtlch\fcs1 \af2 \ltrch\fcs0 |
|
373 \f2\cf0\revised\revauth1\revdttm1188404208\insrsid16087510 |}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf0\revised\revauth1\revdttm1188404208\insrsid16087510 KeyedTable}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
374 \b\f2\cf0\revised\revauth1\revdttm1188404208\insrsid16087510 3232}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf0\revised\revauth1\revdttm1188404208\insrsid16087510 | KeyedTable}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
375 \b\f2\cf0\revised\revauth1\revdttm1188404208\insrsid16087510 32}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf0\revised\revauth1\revdttm1188404208\insrsid16087510 OfIndexedTables}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
376 \b\f2\cf0\revised\revauth1\revdttm1188404208\insrsid16087510 32}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
377 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
378 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 size of the output character code in bytes (this was not in format A) - a decimal number |
|
379 \par {\pntext\pard\plain\ltrpar \rtlch\fcs1 \af3\afs20 \ltrch\fcs0 \f3\fs20\lang1033\langfe2057\langfenp2057\insrsid4815261 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ltrpar\qj \fi-283\li283\ri0\widctlpar\wrapdefault{\*\pn \pnlvlblt\ilvl0\ls5\pnrnot0 |
|
380 \pnf3\pnindent283\pnhang {\pntxtb \hich \'b7}}\faauto\ls5\rin0\lin283\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 parameters - Applicable only to the KeyedTable16OfIndexedTables16}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
381 \cf0\revised\revauth1\revdttm1188404209\insrsid16087510 and }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404209\insrsid16087510 KeyedTable}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404209\insrsid16087510 32}{ |
|
382 \rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404209\insrsid16087510 OfIndexedTables}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404209\insrsid16087510 32}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
383 algorithm, for all other algorithms set this to }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 \{\}}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 . For the KeyedTable16OfIndexedTables16}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
384 \cf0\revised\revauth1\revdttm1188404209\insrsid16087510 and }{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404209\insrsid16087510 KeyedTable}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404209\insrsid16087510 32}{ |
|
385 \rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404209\insrsid16087510 OfIndexedTables}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cf0\revised\revauth1\revdttm1188404209\insrsid16087510 32}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
386 , the parameter value is }{\rtlch\fcs1 \af0 \ltrch\fcs0 \deleted\revauthdel1\revdttmdel1188404209\insrsid4815261\delrsid16087510 is }{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 the minimum number of contiguous so |
|
387 urce entries that may be present in each of the indexed tables - to prevent the tool from generating, at worst an N N indexed tables, each containing a single entry, if the source charset consists of N characters, none of which are contiguous. |
|
388 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
389 \par |
|
390 \par }\pard \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 Format D i |
|
391 s exact analogous to Format B (described above). Like Format B, it consists of two hexadecimal numbers prefixed with }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 0x}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
392 , separated by white-space. However, the first of these is a Unicode character code which has multiple equivalents in the foreign charact |
|
393 er set (according to the data in the source file), and the second is the code of the preferred foreign character to which the Unicode character should be converted. |
|
394 \par }\pard\plain \ltrpar\s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af1\afs24\alang1025 \ltrch\fcs0 \f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af1 |
|
395 \ltrch\fcs0 \insrsid4815261 Generating multiple }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 SCnvConversionData}{\rtlch\fcs1 \af1 \ltrch\fcs0 \insrsid4815261 data structures |
|
396 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
397 It is sometimes desirable for further objects to be generated which provide a view of a }{\rtlch\fcs1 \ai\af0 \ltrch\fcs0 \i\insrsid4815261 subset}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 of the main }{\rtlch\fcs1 \af2 \ltrch\fcs0 |
|
398 \f2\insrsid4815261 SCnvConversionData}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 object. This is possible by inserting an extra couple of lines of the following form in both the foreign-to-Unicode data and the Unicode-to-foreign data in the contro |
|
399 l file: |
|
400 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
401 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 StartAdditionalSubsetTable}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 }{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <name-of-SCnvConversionData-object>}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
402 \insrsid4815261 |
|
403 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 EndAdditionalSubsetTable}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 }{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <name-of-SCnvConversionData-object>}{\rtlch\fcs1 \af0 \ltrch\fcs0 |
|
404 \insrsid4815261 |
|
405 \par |
|
406 \par These lines should be placed around the block of lines to be included in the named }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 SCnvConversionData}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
407 object. Note that only one pair of these lines can occur in each of the foreign-to-Unicode data and the Unicode-to-foreign data, and if a pair occurs in one, it must occur in the other. Accessing one of these }{\rtlch\fcs1 \af2 \ltrch\fcs0 |
|
408 \f2\insrsid4815261 SCnvConversionData}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 objects from handwritten C++ files is done by putting a line of the following form at the top of the relevant C++ file. |
|
409 \par |
|
410 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 GLREF_D const SCnvConversionData}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid4815261 }{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <name-of-SCnvConversionData-object>}{\rtlch\fcs1 \ab\af2 |
|
411 \ltrch\fcs0 \b\f2\insrsid4815261 ;}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
412 \par |
|
413 \par The named object can then be used as required. |
|
414 \par }\pard \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 Using this technique means that two (or more |
|
415 ) foreign character sets - where one is a subset of the other(s) - can share the same conversion data. This conversion data would need to be in a shared-library DLL which the two (or more) plug-in DLLs would both link to. |
|
416 \par }\pard\plain \ltrpar\s3\qj \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af1\afs24\alang1025 \ltrch\fcs0 \f1\fs24\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af1 |
|
417 \ltrch\fcs0 \insrsid4815261 Choosing an appropriate algorithm for a range of character codes |
|
418 \par }\pard\plain \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
419 Of the four algorithms listed above, the keyed table is the most general and can be used for any foreign character set. However, it is the algorithm requiring the most storage space, as well as the slowest (a binary search i |
|
420 s required), therefore it is best avoided if possible. The indexed table also requires storage space (although less than the keyed table), but is much faster as essentially only a pointer dereference is required. The direct and offset algorithms are the f |
|
421 astest and require negligible storage. It is thus necessary to choose appropriate algorithms to minimize storage and to maximize speed of conversion. |
|
422 \par CHARCONV provides another tool in the form of a Perl script to analyse the source file and thus help choose the best algorithms for conversion. To run it, type the following command from the \\charconv\\data directory: |
|
423 \par }\pard \ltrpar\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
424 \par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid4815261 perl -w ANALYSE.PL }{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <source-file> <output-file> <column>}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
425 \par |
|
426 \par The output file is essentially a rearrangement of the source file sorted according to the }{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid4815261 <column>}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 parameter, which is passed }{\rtlch\fcs1 \ab\af2 |
|
427 \ltrch\fcs0 \b\f2\insrsid4815261 1}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 to sort on the first \'93column\'94 of the source file (i.e. to sort each line according to their foreign character codes) and }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 |
|
428 \b\f2\insrsid4815261 2}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 to sort on the second \'93column\'94 (i.e. to sort each line according to their Unicode character c |
|
429 odes). The output file also shows the blocks of characters that are contiguous in the specified column. Under each block is a comment indicating the relationship of the other column to the specified column. This is either \'93random\'94 or \'93offset\'94 |
|
430 (with the offset specified). If the output file states that a block has an offset of zero, the }{\rtlch\fcs1 \ai\af0 \ltrch\fcs0 \i\insrsid4815261 direct}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
431 algorithm can be used for that range of characters. If a block has an offset of non-zero, the }{\rtlch\fcs1 \ai\af0 \ltrch\fcs0 \i\insrsid4815261 offset}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
432 algorithm can be used for that range of characters. If the output file states that a block has a random mapping}{\rtlch\fcs1 \af0 \ltrch\fcs0 \cs22\super\insrsid4815261 \chftn {\footnote \ltrpar \pard\plain \ltrpar |
|
433 \s20\qj \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 \rtlch\fcs1 \af0\afs20\alang1025 \ltrch\fcs0 \fs20\lang1033\langfe2057\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs22\super\insrsid4815261 \chftn }{ |
|
434 \rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 A careful check should be made if the analysing tool designates a block as \'93random\'94 |
|
435 . It may be that this block could actually be broken up into two or more other blocks, some of which may only require the direct or offset algorithm.}}}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 , the }{\rtlch\fcs1 \ai\af0 \ltrch\fcs0 |
|
436 \i\insrsid4815261 indexed table}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
437 algorithm can be used for that range of characters. Where the blocks are too small to warrant an algorithm to themselves (as a general guide, blocks of 5 lines or less are probably too small), the }{\rtlch\fcs1 \ai\af0 \ltrch\fcs0 \i\insrsid4815261 |
|
438 keyed table}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 algorithm needs to be used. |
|
439 \par }\pard \ltrpar\qj \fi720\li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261 |
|
440 Ranges of characters in the control file are permitted to overlap. This is useful as it means that a keyed table whose range is the entire range of the foreign character set (or the Unicode character set) can be used at the end of |
|
441 the in the foreign-to-Unicode data (or Unicode-to-foreign data, respectively) to \'93catch\'94 all the characters that were not \'93caught\'94 by the preceding ranges, which will have used better algorithms. |
|
442 \par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4815261 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid4815261\charrsid4815261 |
|
443 \par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8 |
|
444 72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7 |
|
445 2a3150038327acf409935ed7d757e5ee14302999a654e99e393c18936c8f23a4dc072479697d1c81e51a3b13c07e4087e6b628ee8cf5c4489cf1c4d075f92a0b |
|
446 44d7a07a83c82f308ac7b0a0f0fbf90c2480980b58abc733615aa2d210c2e02cb04430076a7ee833dfb6ce62e3ed7e14693e8317d8cd0433bf5c60f53fea2fe7 |
|
447 065bd80facb647e9e25c7fc421fd2ddb526b2e9373fed4bb902e182e97b7b461e6bfad3f010000ffff0300504b030414000600080000002100a5d6a7e7c00000 |
|
448 00360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4fc7060abb08 |
|
449 84a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b63095120f88d94fbc |
|
450 52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462a1a82fe353 |
|
451 bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f7468656d652f7468 |
|
452 656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b4b0d592c9c |
|
453 070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b4757e8d3f7 |
|
454 29e245eb2b260a0238fd010000ffff0300504b03041400060008000000210096b5ade296060000501b0000160000007468656d652f7468656d652f7468656d65 |
|
455 312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87615b8116d8 |
|
456 a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad79482a9c04 |
|
457 98f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b5d8a314d3c |
|
458 94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab999fb7b471 |
|
459 7509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9699640f671 |
|
460 9e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd5868b37a088d1 |
|
461 e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d60cf03ac1a5 |
|
462 193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f9e7ef3f2d1 |
|
463 17d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be15c308d3f2 |
|
464 8acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a99793849c26ae6 |
|
465 6252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d32a423279a |
|
466 668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2af074481847 |
|
467 bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86e877f0034e |
|
468 16bafb0e258ebb4faf06b769e888340b103d3311da9750aa9d0a1cd3e4efca31a3508f6d0c5c5c398602f8e2ebc71591f5b616e24dd893aa3261fb44f95d843b |
|
469 5974bb5c04f4edafb95b7892ec1108f3f98de75dc97d5772bdff7cc95d94cf672db4b3da0a6557f70db629362d72bcb0431e53c6066acac80d699a6409fb44d0 |
|
470 8741bdce9c0e4971624a2378cceaba830b05366b90e0ea23aaa241845368b0eb9e2612ca8c742851ca251ceccc70256d8d87265dd96361531f186c3d9058edf2 |
|
471 c00eafe8e1fc5c509031bb4d680e9f39a3154de0accc56ae644441edd76156d7429d995bdd88664a9dc3ad50197c38af1a0c16d684060441db02565e85f3b966 |
|
472 0d0713cc48a0ed6ef7dedc2dc60b17e92219e180643ed27acffba86e9c94c78ab90980d8a9f0913ee49d62b512b79626fb06dccee2a432bbc60276b9f7dec44b |
|
473 7904cfbca4f3f6443ab2a49c9c2c41476dafd55c6e7ac8c769db1bc399161ee314bc2e75cf8759081743be1236ec4f4d6693e5336fb672c5dc24a8c33585b5fb |
|
474 9cc24e1d4885545b58463634cc5416022cd19cacfccb4d30eb45296023fd35a458598360f8d7a4003bbaae25e331f155d9d9a5116d3bfb9a95523e51440ca2e0 |
|
475 088dd844ec6370bf0e55d027a012ae264c45d02f708fa6ad6da6dce29c255df9f6cae0ec38666984b372ab5334cf640b37795cc860de4ae2816e95b21be5ceaf |
|
476 8a49f90b52a51cc6ff3355f47e0237052b81f6800fd7b802239daf6d8f0b1571a8426944fdbe80c6c1d40e8816b88b8569082ab84c36ff0539d4ff6dce591a26 |
|
477 ade1c0a7f669880485fd484582903d284b26fa4e2156cff62e4b9265844c4495c495a9157b440e091bea1ab8aaf7760f4510eaa69a6465c0e04ec69ffb9e65d0 |
|
478 28d44d4e39df9c1a52ecbd3607fee9cec7263328e5d661d3d0e4f62f44acd855ed7ab33cdf7bcb8ae889599bd5c8b3029895b6825696f6af29c239b75a5bb1e6 |
|
479 345e6ee6c28117e73586c1a2214ae1be07e93fb0ff51e133fb65426fa843be0fb515c187064d0cc206a2fa926d3c902e907670048d931db4c1a44959d366ad93 |
|
480 b65abe595f70a75bf03d616c2dd959fc7d4e6317cd99cbcec9c58b34766661c7d6766ca1a9c1b327531486c6f941c638c67cd22a7f75e2a37be0e82db8df9f30 |
|
481 254d30c1372581a1f51c983c80e4b71ccdd28dbf000000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f74 |
|
482 68656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f24 |
|
483 51eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198 |
|
484 720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528 |
|
485 a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100828abc13fa0000001c0200001300000000000000000000000000 |
|
486 000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b000000000000000000000000 |
|
487 002b0100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000140200007468 |
|
488 656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210096b5ade296060000501b000016000000000000000000 |
|
489 00000000d10200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b010000270000000000 |
|
490 00000000000000009b0900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000960a00000000} |
|
491 {\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d |
|
492 617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 |
|
493 6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 |
|
494 656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} |
|
495 {\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal; |
|
496 \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 heading 1;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 heading 2;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 heading 3; |
|
497 \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 heading 4;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; |
|
498 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4; |
|
499 \lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdunhideused0 \lsdlocked0 footnote text;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption; |
|
500 \lsdunhideused0 \lsdlocked0 footnote reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdunhideused0 \lsdlocked0 Default Paragraph Font;\lsdunhideused0 \lsdlocked0 Body Text; |
|
501 \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis; |
|
502 \lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing; |
|
503 \lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid; |
|
504 \lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1; |
|
505 \lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2; |
|
506 \lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading; |
|
507 \lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1; |
|
508 \lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1; |
|
509 \lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision; |
|
510 \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote; |
|
511 \lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1; |
|
512 \lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1; |
|
513 \lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2; |
|
514 \lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; |
|
515 \lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2; |
|
516 \lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2; |
|
517 \lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2; |
|
518 \lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3; |
|
519 \lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; |
|
520 \lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3; |
|
521 \lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3; |
|
522 \lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3; |
|
523 \lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4; |
|
524 \lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; |
|
525 \lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4; |
|
526 \lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4; |
|
527 \lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5; |
|
528 \lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5; |
|
529 \lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; |
|
530 \lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5; |
|
531 \lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5; |
|
532 \lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6; |
|
533 \lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6; |
|
534 \lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6; |
|
535 \lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6; |
|
536 \lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6; |
|
537 \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; |
|
538 \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference; |
|
539 \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000 |
|
540 4d73786d6c322e534158584d4c5265616465722e352e3000000000000000000000060000 |
|
541 d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
|
542 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
|
543 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
|
544 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
|
545 fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
|
546 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
|
547 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
|
548 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff |
|
549 ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f000000000000000000000000505e |
|
550 c25856d8c901feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 |
|
551 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 |
|
552 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 |
|
553 0000000000000000000000000000000000000000000000000105000000000000}} |