CharacterEncoder.st
changeset 7909 a045c719fca2
parent 7904 e3940bba2746
child 7912 fbbb59645576
equal deleted inserted replaced
7908:69ed349024cb 7909:a045c719fca2
   213 	classVariableNames:''
   213 	classVariableNames:''
   214 	poolDictionaries:''
   214 	poolDictionaries:''
   215 	privateIn:CharacterEncoder
   215 	privateIn:CharacterEncoder
   216 !
   216 !
   217 
   217 
   218 CharacterEncoder::SingleByteEncoder subclass:#KOI8_U
   218 CharacterEncoder::KOI8_R subclass:#KOI8_U
   219 	instanceVariableNames:''
   219 	instanceVariableNames:''
   220 	classVariableNames:''
   220 	classVariableNames:''
   221 	poolDictionaries:''
   221 	poolDictionaries:''
   222 	privateIn:CharacterEncoder
   222 	privateIn:CharacterEncoder
   223 !
   223 !
   501         - generate code by evaluating:
   501         - generate code by evaluating:
   502             CharacterEncoder::CP267 generateCode
   502             CharacterEncoder::CP267 generateCode
   503 
   503 
   504     Thats all !!
   504     Thats all !!
   505 
   505 
   506     CharacterEncoder::SingleByteEncoder allSubclassesDo:[:cls | cls flushCode; generateCode ]
   506 
   507 
   507     The existing code was generated by:
   508     CharacterEncoder::ASCII flushCode; generateCode.
   508 
   509     CharacterEncoder::ISO8859_1 flushCode; generateCode.
   509         CharacterEncoder::SingleByteEncoder subclassesDo:[:cls | Transcript showCR:cls name. cls flushCode; generateCode ]
   510     CharacterEncoder::ISO8859_2 flushCode; generateCode.
   510         CharacterEncoder::SingleByteEncoder subclassesDo:[:cls | cls allSubclassesDo:[:sub | Transcript showCR:sub name. sub flushCode; generateSubclassCode]]
   511     CharacterEncoder::ISO8859_3 flushCode; generateCode.
   511 
   512     CharacterEncoder::ISO8859_4 flushCode; generateCode.
   512     or individually:
   513     CharacterEncoder::ISO8859_5 flushCode; generateCode.
   513         CharacterEncoder::ASCII flushCode; generateCode.
   514     CharacterEncoder::ISO8859_6 flushCode; generateCode.
   514         CharacterEncoder::ISO8859_1 flushCode; generateCode.
   515     CharacterEncoder::ISO8859_7 flushCode; generateCode.
   515         CharacterEncoder::ISO8859_2 flushCode; generateCode.
   516     CharacterEncoder::ISO8859_8 flushCode; generateCode.
   516         CharacterEncoder::ISO8859_3 flushCode; generateCode.
   517     CharacterEncoder::ISO8859_9 flushCode; generateCode.
   517         CharacterEncoder::ISO8859_4 flushCode; generateCode.
   518     CharacterEncoder::ISO8859_10 flushCode; generateCode.
   518         CharacterEncoder::ISO8859_5 flushCode; generateCode.
   519     CharacterEncoder::ISO8859_11 flushCode; generateCode.
   519         CharacterEncoder::ISO8859_6 flushCode; generateCode.
   520     CharacterEncoder::ISO8859_13 flushCode; generateCode.
   520         CharacterEncoder::ISO8859_7 flushCode; generateCode.
   521     CharacterEncoder::ISO8859_14 flushCode; generateCode.
   521         CharacterEncoder::ISO8859_8 flushCode; generateCode.
   522     CharacterEncoder::ISO8859_15 flushCode; generateCode.
   522         CharacterEncoder::ISO8859_9 flushCode; generateCode.
   523     CharacterEncoder::ISO8859_16 flushCode; generateCode.
   523         CharacterEncoder::ISO8859_10 flushCode; generateCode.
   524     CharacterEncoder::KOI8_R flushCode; generateCode.
   524         CharacterEncoder::ISO8859_11 flushCode; generateCode.
   525     CharacterEncoder::KOI8_U flushCode; generateCode.
   525         CharacterEncoder::ISO8859_13 flushCode; generateCode.
   526     CharacterEncoder::GSM0338 flushCode; generateCode.
   526         CharacterEncoder::ISO8859_14 flushCode; generateCode.
       
   527         CharacterEncoder::ISO8859_15 flushCode; generateCode.
       
   528         CharacterEncoder::ISO8859_16 flushCode; generateCode.
       
   529         CharacterEncoder::KOI8_R flushCode; generateCode.
       
   530         CharacterEncoder::GSM0338 flushCode; generateCode.
       
   531 
       
   532         CharacterEncoder::KOI8_U flushCode; generateSubclassCode.
   527 "
   533 "
   528 ! !
   534 ! !
   529 
   535 
   530 !CharacterEncoder class methodsFor:'class initialization'!
   536 !CharacterEncoder class methodsFor:'class initialization'!
   531 
   537 
   691 ! !
   697 ! !
   692 
   698 
   693 !CharacterEncoder class methodsFor:'private-mapping setup'!
   699 !CharacterEncoder class methodsFor:'private-mapping setup'!
   694 
   700 
   695 generateCode
   701 generateCode
   696     |tables codeTable nameTable 
   702     (CharacterEncoderCodeGenerator new targetClass:self) generateCode.
   697      minCode maxCode minUnicode maxUnicode
       
   698      firstDiff lastDiff 
       
   699      firstUnicodeDiff lastUnicodeDiff
       
   700      source unicodeTable unicodeNameTable m limit|
       
   701 
       
   702     tables := self mappingTables.
       
   703     tables isNil ifTrue:[
       
   704         self halt.
       
   705         ^ self.
       
   706     ].
       
   707 
       
   708     codeTable := tables at:1.
       
   709     nameTable := tables at:2.
       
   710     unicodeTable := IdentityDictionary new.
       
   711     unicodeNameTable := IdentityDictionary new.
       
   712 
       
   713     minCode := 16rFFFFFFF.
       
   714     maxCode := -1.
       
   715     minUnicode := 16rFFFFFFF.
       
   716     maxUnicode := -1.
       
   717 
       
   718     codeTable keysAndValuesDo:[:code :uniCode |
       
   719         minCode := minCode min:code.
       
   720         maxCode := maxCode max:code.
       
   721         minUnicode := minUnicode min:uniCode.
       
   722         maxUnicode := maxUnicode max:uniCode.
       
   723 
       
   724         unicodeTable at:uniCode put:code.
       
   725         unicodeNameTable at:uniCode put:(nameTable at:code).
       
   726     ].
       
   727 
       
   728     "/ first difference...
       
   729     firstDiff := (minCode to:maxCode) detect:[:code | (codeTable at:code ifAbsent:nil) ~~ code] ifNone:nil.
       
   730     lastDiff := (maxCode to:minCode by:-1) detect:[:code | (codeTable at:code ifAbsent:nil) ~~ code] ifNone:nil.
       
   731 
       
   732     firstUnicodeDiff := (minUnicode to:maxUnicode) detect:[:unicode | (unicodeTable at:unicode ifAbsent:nil) ~~ unicode] ifNone:nil.
       
   733     lastUnicodeDiff := (maxUnicode to:minUnicode by:-1) detect:[:unicode | (unicodeTable at:unicode ifAbsent:nil) ~~ unicode] ifNone:nil.
       
   734 
       
   735     "/ do not overwrite handwritten methods...
       
   736     m := self compiledMethodAt:#'decode:'.
       
   737     (m notNil and:[((m comment ? '') includesString:'Automagically generated') not]) ifTrue:[
       
   738         self warn:'Will not overwrite handwritten code.'
       
   739     ] ifFalse:[
       
   740         "/ generate the decoder...
       
   741 
       
   742         source := WriteStream on:(String new:200).
       
   743         source nextPutLine:'decode:codeArg'.
       
   744         source nextPutLine:'    "Automagically generated by generateCode - do not modify.'.
       
   745         source nextPutLine:'     Decode from my encoding into unicode."'.
       
   746         source nextPutLine:''.
       
   747         source nextPutLine:'    |code "{ Class: SmallInteger }"|'.
       
   748         source nextPutLine:''.
       
   749         source nextPutLine:'    code := codeArg.'.
       
   750         firstDiff isNil ifTrue:[
       
   751             minCode ~~ 0 ifTrue:[
       
   752                 source nextPutLine:'    code <= ' , ((minCode-1) radixPrintStringRadix:16) , ' ifTrue:['.
       
   753                 source nextPutLine:'        ^ self decodingError.'.
       
   754                 source nextPutLine:'    ].'.
       
   755             ].
       
   756             true "maxCode ~~ 255" ifTrue:[
       
   757                 source nextPutLine:'    code > ' , (maxCode radixPrintStringRadix:16) , ' ifTrue:['.
       
   758                 source nextPutLine:'        ^ self decodingError.'.
       
   759                 source nextPutLine:'    ].'.
       
   760             ].
       
   761             source nextPutLine:'    ^ code.'.
       
   762         ] ifFalse:[
       
   763             source nextPutLine:'    code <= ' , ((firstDiff-1) radixPrintStringRadix:16) , ' ifTrue:[ ^ code ].'.
       
   764             true "maxCode ~~ 255" ifTrue:[
       
   765                 source nextPutLine:'    code > ' , (maxCode radixPrintStringRadix:16) , ' ifTrue:['.
       
   766                 source nextPutLine:'        ^ self decodingError.'.
       
   767                 source nextPutLine:'    ].'.
       
   768             ].
       
   769             lastDiff > maxCode ifTrue:[
       
   770                 source nextPutLine:'    code > ' , (lastDiff radixPrintStringRadix:16) , ' ifTrue:[ ^ code ].'.
       
   771                 limit := lastDiff
       
   772             ] ifFalse:[
       
   773                 limit := maxCode.
       
   774             ].
       
   775 
       
   776             self 
       
   777                 generateLookupFor:codeTable nameTable:nameTable from:firstDiff to:limit varName:'code' 
       
   778                 errorCode:'^ self decodingError.' 
       
   779                 indent:4 onto:source.
       
   780         ].
       
   781 
       
   782         self 
       
   783             compile:source contents
       
   784             classified:'encoding & decoding'
       
   785             logged:false.
       
   786     ].
       
   787 
       
   788     m := self compiledMethodAt:#'encode:'.
       
   789     (m notNil and:[((m comment ? '') includesString:'Automagically generated') not]) ifTrue:[
       
   790         self warn:'Will not overwrite handwritten code.'
       
   791     ] ifFalse:[
       
   792 
       
   793         "/ generate the encoder...
       
   794 
       
   795         source := WriteStream on:(String new:200).
       
   796         source nextPutLine:'encode:unicodeArg'.
       
   797         source nextPutLine:'    "Automagically generated by generateCode - do not modify.'.
       
   798         source nextPutLine:'     Encode from unicode into my encoding."'.
       
   799         source nextPutLine:''.
       
   800         source nextPutLine:'    |unicode "{ Class: SmallInteger }"|'.
       
   801         source nextPutLine:''.
       
   802         source nextPutLine:'    unicode := unicodeArg.'.
       
   803         firstDiff isNil ifTrue:[
       
   804             minUnicode ~~ 0 ifTrue:[
       
   805                 source nextPutLine:'    unicode <= ' , ((minUnicode-1) radixPrintStringRadix:16) , ' ifTrue:['.
       
   806                 source nextPutLine:'        ^ self encodingError.'.
       
   807                 source nextPutLine:'    ].'.
       
   808             ].
       
   809             true "maxUnicode ~~ 255" ifTrue:[
       
   810                 source nextPutLine:'    unicode > ' , (maxUnicode radixPrintStringRadix:16) , ' ifTrue:['.
       
   811                 source nextPutLine:'        ^ self encodingError.'.
       
   812                 source nextPutLine:'    ].'.
       
   813             ].
       
   814             source nextPutLine:'    ^ unicode.'.
       
   815         ] ifFalse:[
       
   816             source nextPutLine:'    unicode <= ' , ((firstUnicodeDiff-1) radixPrintStringRadix:16) , ' ifTrue:[ ^ unicode ].'.
       
   817             source nextPutLine:'    unicode > ' , (maxUnicode radixPrintStringRadix:16) , ' ifTrue:['.
       
   818             source nextPutLine:'        ^ self encodingError.'.
       
   819             source nextPutLine:'    ].'.
       
   820             lastDiff > maxCode ifTrue:[
       
   821                 source nextPutLine:'    unicode > ' , (lastUnicodeDiff radixPrintStringRadix:16) , ' ifTrue:[ ^ unicode ].'.
       
   822             ].
       
   823 
       
   824             self 
       
   825                 generateLookupFor:unicodeTable nameTable:unicodeNameTable from:firstUnicodeDiff to:lastUnicodeDiff varName:'unicode' 
       
   826                 errorCode:'^ self encodingError'  
       
   827                 indent:4 onto:source.
       
   828         ].
       
   829 
       
   830         self 
       
   831             compile:source contents
       
   832             classified:'encoding & decoding'
       
   833             logged:false.
       
   834     ].
       
   835 
       
   836     "
       
   837      ISO8859_1 flushCode; generateCode
       
   838      ISO8859_2 flushCode; generateCode
       
   839      KOI8_U flushCode; generateCode
       
   840      NEXT flushCode; generateCode
       
   841     "
       
   842 !
   703 !
   843 
   704 
   844 generateDirectTableLookupFor:codeTable nameTable:nameTable from:firstIndex to:lastIndex varName:codeVar errorCode:errorCode indent:indentArg onto:stream
   705 generateSubclassCode
   845     "/ generate direct table lookup
   706     (CharacterEncoderCodeGenerator new targetClass:self) generateSubclassCode.
   846 
       
   847     |maxElement useByteArray valPad anyInvalid usedElements invalidMarker indent code unicode unicodeCharacterName|
       
   848 
       
   849     indent := indentArg.
       
   850 
       
   851     firstIndex == lastIndex ifTrue:[
       
   852         code := firstIndex.
       
   853         unicode := codeTable at:code ifAbsent:nil.
       
   854         unicodeCharacterName := nameTable at:code ifAbsent:nil.
       
   855         unicode isNil ifTrue:[
       
   856             unicodeCharacterName := 'invalid'.
       
   857         ].
       
   858         unicode isNil ifTrue:[
       
   859 self halt.
       
   860             stream spaces:indent; nextPutLine:errorCode.
       
   861         ] ifFalse:[
       
   862             stream spaces:indent; nextPutAll:'^ '.
       
   863             stream nextPutAll:' "' , '16r' , ((code printStringRadix:16) leftPaddedTo:4 with:$0).
       
   864             stream nextPutAll:'" ' , '16r' , ((unicode printStringRadix:16) leftPaddedTo:4 with:$0).
       
   865             unicodeCharacterName notNil ifTrue:[
       
   866                 stream nextPutAll:' " ' , unicodeCharacterName , ' " '.
       
   867             ].
       
   868             stream cr.
       
   869         ].
       
   870         ^ self
       
   871     ].
       
   872 
       
   873     anyInvalid := false.
       
   874     usedElements := IdentitySet new.
       
   875     maxElement := -1.
       
   876     firstIndex to:lastIndex do:[:code |
       
   877         |unicode|
       
   878 
       
   879         unicode := codeTable at:code ifAbsent:nil.
       
   880         unicode notNil ifTrue:[
       
   881             usedElements add:unicode.
       
   882             maxElement := maxElement max:unicode.  
       
   883         ] ifFalse:[
       
   884             anyInvalid := true.
       
   885         ]
       
   886     ].
       
   887 
       
   888     useByteArray := maxElement <= 255.
       
   889 
       
   890     (usedElements includes:0) ifFalse:[
       
   891         invalidMarker := 0.
       
   892     ] ifTrue:[
       
   893         useByteArray ifTrue:[
       
   894             (usedElements includes:255) ifFalse:[
       
   895                 invalidMarker := 255.
       
   896             ] ifFalse:[
       
   897                 invalidMarker := (1 to:255) detect:[:n | (usedElements includes:n) not].
       
   898             ].
       
   899         ] ifFalse:[
       
   900             (usedElements includes:16rFFFF) ifFalse:[
       
   901                 invalidMarker := 16rFFFF.
       
   902             ] ifTrue:[
       
   903                 invalidMarker := maxElement + 1.
       
   904             ]
       
   905         ].
       
   906     ].
       
   907 
       
   908     anyInvalid ifTrue:[
       
   909         stream spaces:indent; nextPutLine:'['.
       
   910         indent := indent + 4.
       
   911         stream spaces:indent; nextPutLine:'|t|'.
       
   912         stream spaces:indent; nextPutAll:'t := '.
       
   913     ] ifFalse:[
       
   914         stream spaces:indent; nextPutAll:'^ '.
       
   915     ].
       
   916     useByteArray ifTrue:[
       
   917         valPad := 2.
       
   918         stream nextPutLine:'#['.
       
   919     ] ifFalse:[
       
   920         valPad := 4.
       
   921         stream nextPutLine:'#('.
       
   922     ].
       
   923     firstIndex to:lastIndex do:[:code |
       
   924         |unicode unicodeCharacterName|
       
   925 
       
   926         unicode := codeTable at:code ifAbsent:nil.
       
   927         unicodeCharacterName := nameTable at:code ifAbsent:nil.
       
   928         unicode isNil ifTrue:[
       
   929             unicode := invalidMarker.
       
   930             unicodeCharacterName := 'invalid'.
       
   931         ].
       
   932         stream spaces:indent; nextPutAll:'   "' , '16r' , ((code printStringRadix:16) leftPaddedTo:4 with:$0).
       
   933         stream nextPutAll:'"    ' , '16r' , ((unicode printStringRadix:16) leftPaddedTo:valPad with:$0).
       
   934         unicodeCharacterName notNil ifTrue:[
       
   935             stream nextPutAll:' " ' , unicodeCharacterName , ' " '.
       
   936         ].
       
   937         stream cr.
       
   938     ].
       
   939     useByteArray ifTrue:[
       
   940         stream spaces:indent; nextPutAll:'   ]'.
       
   941     ] ifFalse:[
       
   942         stream spaces:indent; nextPutAll:'   )'.
       
   943     ].
       
   944     stream nextPutLine:' at:(',codeVar,' - ' , ((firstIndex-1) radixPrintStringRadix:16) , ').'.
       
   945 
       
   946     anyInvalid ifTrue:[
       
   947         stream spaces:indent; nextPutLine:'t == ',invalidMarker printString,' ifFalse:[^ t].'.
       
   948         stream spaces:indent; nextPutLine:errorCode.
       
   949         indent := indent - 4.
       
   950         stream spaces:indent; nextPutLine:'] value.'.
       
   951     ].
       
   952 !
       
   953 
       
   954 generateLookupFor:codeTable nameTable:nameTable from:firstIndex to:lastIndex varName:codeVar errorCode:errorCode indent:indent onto:stream
       
   955     |info fillRatio firstValidNonIdentical lastValidNonIdentical|
       
   956 
       
   957     info := self mapInfoFor:codeTable from:firstIndex to:lastIndex.
       
   958     fillRatio := info validRangeSize / info domainSize.
       
   959 
       
   960     fillRatio < 1 ifTrue:[
       
   961         "/ some mappings are invalid
       
   962 
       
   963         info firstInvalid == firstIndex ifTrue:[
       
   964             "/ invalid block at beginning...
       
   965             (firstIndex to:info firstValid) size >= 10 ifTrue:[
       
   966                 stream spaces:indent; nextPutLine:codeVar,' <= ', ((info firstValid - 1) radixPrintStringRadix:16),' ifTrue:['.
       
   967                 stream spaces:indent+4; nextPutLine:errorCode,'.'.
       
   968                 stream spaces:indent; nextPutLine:'].'.
       
   969 
       
   970                 self 
       
   971                     generateLookupFor:codeTable nameTable:nameTable from:(info firstValid) to:lastIndex varName:codeVar 
       
   972                     errorCode:errorCode 
       
   973                     indent:indent onto:stream.
       
   974                 ^ self.
       
   975             ].
       
   976         ].
       
   977 
       
   978         info lastInvalid == lastIndex ifTrue:[
       
   979             "/ invalid block at the end...
       
   980 self halt.
       
   981         ].
       
   982 
       
   983         (info largestInvalidBlock size) / (firstIndex to:lastIndex) size > 0.3 ifTrue:[
       
   984             (info largestInvalidBlock size) > 15 ifTrue:[
       
   985                 "/ big invalid block in the middle...
       
   986                 firstIndex == (info largestInvalidBlock start-1) ifTrue:[
       
   987                     stream spaces:indent; nextPutLine:codeVar,' == ', (firstIndex radixPrintStringRadix:16),' ifTrue:['.
       
   988                 ] ifFalse:[
       
   989                     stream spaces:indent; nextPutLine:codeVar,' <= ',((info largestInvalidBlock start - 1) radixPrintStringRadix:16),' ifTrue:['.
       
   990                 ].
       
   991                 self 
       
   992                     generateLookupFor:codeTable nameTable:nameTable from:firstIndex to:(info largestInvalidBlock start-1) varName:codeVar 
       
   993                     errorCode:errorCode 
       
   994                     indent:indent+4 onto:stream.
       
   995                 stream spaces:indent; nextPutLine:'].'.
       
   996                 "/ invalid block...
       
   997                 stream spaces:indent; nextPutLine:codeVar,' <= ',(info largestInvalidBlock stop radixPrintStringRadix:16),' ifTrue:['.
       
   998                 stream spaces:indent+4; nextPutLine:errorCode,'.'.
       
   999                 stream spaces:indent; nextPutLine:'].'.
       
  1000                 self 
       
  1001                     generateLookupFor:codeTable nameTable:nameTable from:(info largestInvalidBlock stop+1) to:lastIndex varName:codeVar 
       
  1002                     errorCode:errorCode 
       
  1003                     indent:indent onto:stream.
       
  1004                 ^ self.
       
  1005             ].
       
  1006         ].
       
  1007 
       
  1008         info domainSize > 40 ifTrue:[
       
  1009             "/ is there a part of the mapping which is either identity-mapping or error ?
       
  1010             firstValidNonIdentical := (firstIndex to:lastIndex) detect:[:idx | (codeTable at:idx ifAbsent:idx) ~~ idx] ifNone:nil.
       
  1011 
       
  1012             firstValidNonIdentical isNil ifTrue:[
       
  1013                 "/ wow - all should be done this way
       
  1014                 self 
       
  1015                     generateLookupForIdenticalOrInvalid:codeTable nameTable:nameTable from:firstIndex to:lastIndex varName:codeVar 
       
  1016                     errorCode:errorCode 
       
  1017                     indent:indent+4 onto:stream.
       
  1018                 ^ self.
       
  1019             ].
       
  1020 
       
  1021             (firstIndex to:firstValidNonIdentical-1) size > 40 ifTrue:[
       
  1022                 stream spaces:indent; nextPutLine:codeVar,' <= ',((firstValidNonIdentical - 1) radixPrintStringRadix:16),' ifTrue:['.
       
  1023                 self 
       
  1024                     generateLookupForIdenticalOrInvalid:codeTable nameTable:nameTable from:firstIndex to:firstValidNonIdentical-1 varName:codeVar 
       
  1025                     errorCode:errorCode 
       
  1026                     indent:indent+4 onto:stream.
       
  1027                 stream spaces:indent; nextPutLine:'].'.
       
  1028                 self 
       
  1029                     generateLookupFor:codeTable nameTable:nameTable from:firstValidNonIdentical to:lastIndex varName:codeVar 
       
  1030                     errorCode:errorCode 
       
  1031                     indent:indent onto:stream.
       
  1032                 ^ self.
       
  1033             ].
       
  1034 
       
  1035             lastValidNonIdentical := (lastIndex to:firstIndex by:-1) detect:[:idx | (codeTable at:idx ifAbsent:idx) ~~ idx] ifNone:nil.
       
  1036             (lastValidNonIdentical+1 to:lastIndex) size > 40 ifTrue:[
       
  1037 self halt.
       
  1038             ].
       
  1039 
       
  1040             info largestInvalidBlock size > 40 ifTrue:[
       
  1041                 stream spaces:indent; nextPutLine:codeVar,' <= ',((info largestInvalidBlock start - 1) radixPrintStringRadix:16),' ifTrue:['.
       
  1042                 self 
       
  1043                     generateLookupFor:codeTable nameTable:nameTable from:firstIndex to:(info largestInvalidBlock start-1) varName:codeVar 
       
  1044                     errorCode:errorCode 
       
  1045                     indent:indent+4 onto:stream.
       
  1046                 stream spaces:indent; nextPutLine:'].'.
       
  1047                 "/ invalid block...
       
  1048                 stream spaces:indent; nextPutLine:codeVar,' <= ',(info largestInvalidBlock stop radixPrintStringRadix:16),' ifTrue:['.
       
  1049                 stream spaces:indent+4; nextPutLine:errorCode,'.'.
       
  1050                 stream spaces:indent; nextPutLine:'].'.
       
  1051                 self 
       
  1052                     generateLookupFor:codeTable nameTable:nameTable from:(info largestInvalidBlock stop+1) to:lastIndex varName:codeVar 
       
  1053                     errorCode:errorCode 
       
  1054                     indent:indent onto:stream.
       
  1055                 ^ self.
       
  1056             ].
       
  1057             "/ how would it look if we did it in parts/page-wise ?
       
  1058 "/            fillRatio < 0.5 ifTrue:[
       
  1059 "/            ].
       
  1060 "/ self halt.
       
  1061         ] ifFalse:[
       
  1062             info firstInvalid == (firstIndex+1) ifTrue:[
       
  1063                 info largestInvalidBlock start == info firstInvalid ifTrue:[
       
  1064                     "/ a single valid item followed by an invalid block
       
  1065                     info largestInvalidBlock size >= 10 ifTrue:[
       
  1066                         stream spaces:indent; nextPutLine:codeVar,' == ', (firstIndex radixPrintStringRadix:16),' ifTrue:['.
       
  1067                         self 
       
  1068                             generateLookupForIdenticalOrInvalid:codeTable nameTable:nameTable from:firstIndex to:firstIndex varName:codeVar 
       
  1069                             errorCode:errorCode 
       
  1070                             indent:indent+4 onto:stream.
       
  1071                         stream spaces:indent; nextPutLine:'].'.
       
  1072                         self 
       
  1073                             generateLookupFor:codeTable nameTable:nameTable from:firstIndex+1 to:lastIndex varName:codeVar 
       
  1074                             errorCode:errorCode 
       
  1075                             indent:indent onto:stream.
       
  1076                         ^ self.
       
  1077                     ]
       
  1078                 ]
       
  1079             ].
       
  1080             info lastInvalid == (lastIndex-1) ifTrue:[
       
  1081                 info largestInvalidBlock stop == info lastInvalid ifTrue:[
       
  1082                     info largestInvalidBlock size >= 10 ifTrue:[
       
  1083 self halt.
       
  1084                     ]
       
  1085                 ]
       
  1086             ].
       
  1087 "/ self halt.
       
  1088         ]
       
  1089     ].
       
  1090 
       
  1091     self 
       
  1092         generateDirectTableLookupFor:codeTable nameTable:nameTable from:firstIndex to:lastIndex varName:codeVar 
       
  1093         errorCode:errorCode 
       
  1094         indent:indent onto:stream
       
  1095 !
       
  1096 
       
  1097 generateLookupForIdenticalOrInvalid:codeTable nameTable:nameTable from:firstIndex to:lastIndex varName:codeVar errorCode:errorCode indent:indent onto:stream.
       
  1098     "/ generate flag lookup for either identity or invalid
       
  1099 
       
  1100     stream spaces:indent; nextPutLine:'(#['.
       
  1101     firstIndex to:lastIndex do:[:code |
       
  1102         |unicode unicodeCharacterName flag|
       
  1103 
       
  1104         unicode := codeTable at:code ifAbsent:nil.
       
  1105         unicodeCharacterName := nameTable at:code ifAbsent:nil.
       
  1106         unicode notNil ifTrue:[
       
  1107             flag := 1
       
  1108         ] ifFalse:[
       
  1109             flag := 0.
       
  1110             unicodeCharacterName := 'invalid'.
       
  1111         ].
       
  1112         stream spaces:indent; nextPutAll:'   "' , '16r' , ((code printStringRadix:16) leftPaddedTo:4 with:$0).
       
  1113         stream nextPutAll:'"    ' , flag printString.
       
  1114         unicodeCharacterName notNil ifTrue:[
       
  1115             stream nextPutAll:' " ' , unicodeCharacterName , ' " '.
       
  1116         ].
       
  1117         stream cr.
       
  1118     ].
       
  1119     stream spaces:indent; nextPutLine:'] at:(',codeVar,' - ' , (firstIndex-1) printString , ')) ~~ 0 ifTrue:[^ ',codeVar,'].'..
       
  1120     stream spaces:indent; nextPutLine:errorCode,'.'.
       
  1121 !
       
  1122 
       
  1123 mapInfoFor:codeTable from:firstIndex to:lastIndex
       
  1124     |minCode maxCode domainSize rangeSize validRangeSize firstDiff lastDiff firstValid lastValid firstInvalid lastInvalid info
       
  1125      largestInvalidBlock invalidBlockStart invalidBlockEnd sizeOfLargestInvalidBlock|
       
  1126 
       
  1127     minCode := 16rFFFFFFF.
       
  1128     maxCode := -1.
       
  1129     validRangeSize := 0.
       
  1130 
       
  1131     sizeOfLargestInvalidBlock := 0.
       
  1132     largestInvalidBlock := nil.
       
  1133     invalidBlockStart := nil.
       
  1134     invalidBlockEnd := nil.
       
  1135 
       
  1136     (firstIndex to:lastIndex) do:[:index |
       
  1137         |code|
       
  1138 
       
  1139         code := codeTable at:index ifAbsent:nil.
       
  1140         code notNil ifTrue:[
       
  1141             validRangeSize := validRangeSize + 1.
       
  1142             minCode := minCode min:code.
       
  1143             maxCode := maxCode max:code.
       
  1144 
       
  1145             invalidBlockStart notNil ifTrue:[    
       
  1146                 (invalidBlockStart to:invalidBlockEnd) size > sizeOfLargestInvalidBlock ifTrue:[
       
  1147                     largestInvalidBlock := (invalidBlockStart to:invalidBlockEnd).
       
  1148                     sizeOfLargestInvalidBlock := largestInvalidBlock size.
       
  1149                 ].
       
  1150             ].
       
  1151             invalidBlockStart := nil.
       
  1152             invalidBlockEnd := nil.
       
  1153         ] ifFalse:[
       
  1154             invalidBlockStart isNil ifTrue:[
       
  1155                 invalidBlockStart := invalidBlockEnd := index.
       
  1156             ] ifFalse:[
       
  1157                 invalidBlockEnd := index.
       
  1158             ].
       
  1159         ]
       
  1160     ].
       
  1161     invalidBlockStart notNil ifTrue:[    
       
  1162 self halt.
       
  1163         (invalidBlockStart to:invalidBlockEnd) size > sizeOfLargestInvalidBlock ifTrue:[
       
  1164             largestInvalidBlock := (invalidBlockStart to:invalidBlockEnd).
       
  1165         ].
       
  1166     ].
       
  1167 
       
  1168     domainSize := (firstIndex to:lastIndex) size.
       
  1169     rangeSize := (minCode to:maxCode) size.
       
  1170 
       
  1171     "/ first difference...
       
  1172     firstDiff := (firstIndex to:lastIndex) detect:[:code | (codeTable at:code ifAbsent:nil) ~~ code] ifNone:nil.
       
  1173     lastDiff := (lastIndex to:firstIndex by:-1) detect:[:code | (codeTable at:code ifAbsent:nil) ~~ code] ifNone:nil.
       
  1174 
       
  1175     firstValid := (firstIndex to:lastIndex) detect:[:code | (codeTable includesKey:code)] ifNone:nil.
       
  1176     lastValid := (lastIndex to:firstIndex by:-1) detect:[:code | (codeTable includesKey:code)] ifNone:nil.
       
  1177 
       
  1178     firstInvalid := (firstIndex to:lastIndex) detect:[:code | (codeTable includesKey:code) not] ifNone:nil.
       
  1179     lastInvalid := (lastIndex to:firstIndex by:-1) detect:[:code | (codeTable includesKey:code) not] ifNone:nil.
       
  1180 
       
  1181     info := Structure newWith:#( domainSize rangeSize validRangeSize firstDiff lastDiff firstValid lastValid firstInvalid lastInvalid largestInvalidBlock ).
       
  1182     info domainSize:domainSize.
       
  1183     info rangeSize:rangeSize.
       
  1184     info validRangeSize:validRangeSize.
       
  1185     info firstDiff:firstDiff.
       
  1186     info lastDiff:lastDiff.
       
  1187     info firstValid:firstValid.
       
  1188     info lastValid:lastValid.
       
  1189     info firstInvalid:firstInvalid.
       
  1190     info lastInvalid:lastInvalid.
       
  1191     info largestInvalidBlock:largestInvalidBlock.
       
  1192     ^ info.
       
  1193 !
       
  1194 
       
  1195 mappingSource
       
  1196     |url m response text source|
       
  1197 
       
  1198     m := (self class compiledMethodAt:#mapping).
       
  1199     m isNil ifTrue:[
       
  1200         url := self mappingURL2.
       
  1201         url notNil ifTrue:[
       
  1202             response := HTTPInterface get:url.
       
  1203         ] ifFalse:[
       
  1204             url := self mappingURL1.
       
  1205             url isNil ifTrue:[
       
  1206                 self error:'neither url1 nor url2 is defined (needed for mappingTables)'.
       
  1207             ].
       
  1208             response := HTTPInterface get:(self mappingURL1).
       
  1209         ].
       
  1210         text := response data.
       
  1211         text replaceAll:$" with:$'.
       
  1212 
       
  1213         source := 'mapping\"\# From: ' withCRs, url, '\\' withCRs, text , '\"' withCRs.
       
  1214 
       
  1215         source size > 30000 ifTrue:[ 
       
  1216             ^ source
       
  1217         ].
       
  1218         
       
  1219         "/ compiled codes comment used as a cache.
       
  1220         self class 
       
  1221             compile:source
       
  1222             classified:'mapping'.
       
  1223         m := (self class compiledMethodAt:#mapping).
       
  1224     ].
       
  1225     ^ m source
       
  1226 
       
  1227     "
       
  1228      ISO8859_1 mappingSource
       
  1229      ISO8859_2 mappingSource
       
  1230      ISO8859_3 mappingSource
       
  1231      KOI8_U mappingSource
       
  1232     "
       
  1233 !
       
  1234 
       
  1235 mappingTables
       
  1236     "reads and parses the character maps;
       
  1237      Returns an array with 2 tables:
       
  1238      - the first maps codes to uniCode
       
  1239      - the second maps codes to uniCode character names."
       
  1240 
       
  1241     |src codeTable nameTable|
       
  1242 
       
  1243     "/ the code here reads mappings from unicode.org.
       
  1244     "/ the i18n charactermaps are read in a separate method.
       
  1245 
       
  1246     src := self mappingSource.
       
  1247     src readStream linesDo:[:line |
       
  1248         |l|
       
  1249 
       
  1250         l := line withoutSeparators.
       
  1251         (l startsWith:'<code_set_name>') ifTrue:[
       
  1252             ^ self readI18NCharmapFrom:src.
       
  1253         ].
       
  1254 
       
  1255         (l startsWith:'0x') ifTrue:[
       
  1256             |s code uniCode characterComment rest|
       
  1257 
       
  1258             s := l readStream.
       
  1259             s skip:2.
       
  1260             code := Integer readFrom:s radix:16.
       
  1261             s skipSeparators.
       
  1262             (s next:2) = '0x' ifTrue:[
       
  1263                 uniCode := Integer readFrom:s radix:16.
       
  1264             ] ifFalse:[ 
       
  1265                 s position:(s position - 2).
       
  1266                 "an undefined character ?"
       
  1267                 uniCode := 16rFFFF.
       
  1268             ].
       
  1269             s skipSeparators.
       
  1270             s next == $# ifTrue:[ 
       
  1271                 s skipSeparators.
       
  1272                 characterComment := s upToEnd withoutSeparators.
       
  1273             ].
       
  1274             codeTable isNil ifTrue:[
       
  1275                 codeTable := IdentityDictionary new.
       
  1276                 nameTable := IdentityDictionary new.
       
  1277             ].
       
  1278             codeTable at:code put:uniCode.
       
  1279             nameTable at:code put:characterComment.
       
  1280         ]
       
  1281     ].
       
  1282     codeTable isNil ifTrue:[^ nil].
       
  1283     ^ Array with:codeTable with:nameTable
       
  1284 
       
  1285     "
       
  1286      ISO8859_1 mappingTables
       
  1287      ISO8859_2 mappingTables
       
  1288      ISO8859_5 mappingTables
       
  1289      KOI8_R mappingTables
       
  1290     "
       
  1291 !
   707 !
  1292 
   708 
  1293 mappingURL1
   709 mappingURL1
  1294     "raise an error: must be redefined in concrete subclass(es)"
   710     "raise an error: must be redefined in concrete subclass(es)"
  1295 
   711 
  1318 
   734 
  1319 mappingURL2_relativePathName
   735 mappingURL2_relativePathName
  1320     "raise an error: must be redefined in concrete subclass(es)"
   736     "raise an error: must be redefined in concrete subclass(es)"
  1321     
   737     
  1322     ^ nil
   738     ^ nil
  1323 !
       
  1324 
       
  1325 readI18NCharmapFrom:src
       
  1326     "q&d hack to read i18n character map files"
       
  1327     "as an example, see http://std.dkuug.dk/i18n/charmaps/KOI8-U"
       
  1328 
       
  1329     |codeTable nameTable commentChar escapeChar|
       
  1330 
       
  1331     src readStream linesDo:[:line |
       
  1332 	|l|
       
  1333 
       
  1334 	l := line withoutSeparators.
       
  1335 	(l startsWith:commentChar) ifTrue:[
       
  1336 	] ifFalse:[
       
  1337 	    (l startsWith:'<') ifTrue:[
       
  1338 		|s w code uniCode characterComment rest|
       
  1339 
       
  1340 		s := l readStream.
       
  1341 		w := WriteStream on:(String new:10).
       
  1342 		s next.
       
  1343 
       
  1344 		[                                        
       
  1345 		    |ch|
       
  1346 		    [
       
  1347 
       
  1348 			ch := s nextOrNil.
       
  1349 			ch == escapeChar ifTrue:[
       
  1350 			    s nextOrNil.
       
  1351 			    true
       
  1352 			] ifFalse:[
       
  1353 			    ch notNil and:[ch ~~ $>] 
       
  1354 			]
       
  1355 		    ] whileTrue:[ w nextPut:ch ].
       
  1356 		] doUntil:[(s atEnd or:[s peek ~~ $>])].
       
  1357 		w := w contents.
       
  1358 		s skipSeparators.
       
  1359 		rest := s upToEnd.
       
  1360 		w = 'code_set_name' ifTrue:[
       
  1361 		] ifFalse:[
       
  1362 		    w = 'comment_char' ifTrue:[
       
  1363 			commentChar := rest first.
       
  1364 		    ] ifFalse:[
       
  1365 			w = 'escape_char' ifTrue:[
       
  1366 			    escapeChar := rest first.
       
  1367 			] ifFalse:[
       
  1368 			    s := rest readStream.
       
  1369 			    s peek == escapeChar ifTrue:[
       
  1370 				s next.
       
  1371 				s peek == $x ifTrue:[
       
  1372 				    s next.
       
  1373 				    code := Integer readFrom:s radix:16.
       
  1374 				    s skipSeparators.
       
  1375 				    s peek == $< ifTrue:[
       
  1376 					s next.
       
  1377 					s peek == $U ifTrue:[
       
  1378 					    s next.
       
  1379 					    uniCode := Integer readFrom:s radix:16.
       
  1380 					    s peek == $> ifTrue:[
       
  1381 						s next.
       
  1382 						s skipSeparators.
       
  1383 						characterComment := s upToEnd withoutSeparators.
       
  1384 						codeTable isNil ifTrue:[
       
  1385 						    codeTable := IdentityDictionary new.
       
  1386 						    nameTable := IdentityDictionary new.
       
  1387 						].
       
  1388 						codeTable at:code put:uniCode.
       
  1389 						nameTable at:code put:characterComment.
       
  1390 
       
  1391 					    ] ifFalse:[
       
  1392 						self halt.    
       
  1393 					    ].
       
  1394 					] ifFalse:[
       
  1395 					    self halt.    
       
  1396 					].
       
  1397 				    ] ifFalse:[
       
  1398 					self halt.    
       
  1399 				    ].
       
  1400 				] ifFalse:[
       
  1401 				    self halt.    
       
  1402 				].
       
  1403 			    ] ifFalse:[
       
  1404 				self halt.    
       
  1405 			    ]
       
  1406 			]
       
  1407 		    ]
       
  1408 		].
       
  1409 	    ].
       
  1410 	].
       
  1411     ].
       
  1412     codeTable isNil ifTrue:[^ nil].
       
  1413     ^ Array with:codeTable with:nameTable
       
  1414 
       
  1415     "
       
  1416      ISO8859_1 mappingTables
       
  1417      ISO8859_2 mappingTables
       
  1418      ISO8859_5 mappingTables
       
  1419      KOI8_U mappingTables
       
  1420     "
       
  1421 ! !
   739 ! !
  1422 
   740 
  1423 !CharacterEncoder class methodsFor:'queries'!
   741 !CharacterEncoder class methodsFor:'queries'!
  1424 
   742 
  1425 alternativeNamesOfEncoding
   743 alternativeNamesOfEncoding
 12693      Decode from my encoding into unicode."
 12011      Decode from my encoding into unicode."
 12694 
 12012 
 12695     |code "{ Class: SmallInteger }"|
 12013     |code "{ Class: SmallInteger }"|
 12696 
 12014 
 12697     code := codeArg.
 12015     code := codeArg.
 12698     code <= 16r7F ifTrue:[ ^ code ].
 12016     code <= 16rA3 ifTrue:[
 12699     code > 16rFF ifTrue:[
 12017         ^ super decode:codeArg.
 12700         ^ self decodingError.
 12018     ].
       
 12019     code > 16rBD ifTrue:[
       
 12020         ^ super decode:codeArg.
 12701     ].
 12021     ].
 12702     ^ #(
 12022     ^ #(
 12703        "16r0080"    16r2500 " BOX DRAWINGS LIGHT HORIZONTAL " 
       
 12704        "16r0081"    16r2502 " BOX DRAWINGS LIGHT VERTICAL " 
       
 12705        "16r0082"    16r250C " BOX DRAWINGS LIGHT DOWN AND RIGHT " 
       
 12706        "16r0083"    16r2510 " BOX DRAWINGS LIGHT DOWN AND LEFT " 
       
 12707        "16r0084"    16r2514 " BOX DRAWINGS LIGHT UP AND RIGHT " 
       
 12708        "16r0085"    16r2518 " BOX DRAWINGS LIGHT UP AND LEFT " 
       
 12709        "16r0086"    16r251C " BOX DRAWINGS LIGHT VERTICAL AND RIGHT " 
       
 12710        "16r0087"    16r2524 " BOX DRAWINGS LIGHT VERTICAL AND LEFT " 
       
 12711        "16r0088"    16r252C " BOX DRAWINGS LIGHT DOWN AND HORIZONTAL " 
       
 12712        "16r0089"    16r2534 " BOX DRAWINGS LIGHT UP AND HORIZONTAL " 
       
 12713        "16r008A"    16r253C " BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL " 
       
 12714        "16r008B"    16r2580 " UPPER HALF BLOCK " 
       
 12715        "16r008C"    16r2584 " LOWER HALF BLOCK " 
       
 12716        "16r008D"    16r2588 " FULL BLOCK " 
       
 12717        "16r008E"    16r258C " LEFT HALF BLOCK " 
       
 12718        "16r008F"    16r2590 " RIGHT HALF BLOCK " 
       
 12719        "16r0090"    16r2591 " LIGHT SHADE " 
       
 12720        "16r0091"    16r2592 " MEDIUM SHADE " 
       
 12721        "16r0092"    16r2593 " DARK SHADE " 
       
 12722        "16r0093"    16r2320 " TOP HALF INTEGRAL " 
       
 12723        "16r0094"    16r25A0 " BLACK SQUARE " 
       
 12724        "16r0095"    16r2219 " BULLET OPERATOR " 
       
 12725        "16r0096"    16r221A " SQUARE ROOT " 
       
 12726        "16r0097"    16r2248 " ALMOST EQUAL TO " 
       
 12727        "16r0098"    16r2264 " LESS-THAN OR EQUAL TO " 
       
 12728        "16r0099"    16r2265 " GREATER-THAN OR EQUAL TO " 
       
 12729        "16r009A"    16r00A0 " NO-BREAK SPACE " 
       
 12730        "16r009B"    16r2321 " BOTTOM HALF INTEGRAL " 
       
 12731        "16r009C"    16r00B0 " DEGREE SIGN " 
       
 12732        "16r009D"    16r00B2 " SUPERSCRIPT TWO " 
       
 12733        "16r009E"    16r00B7 " MIDDLE DOT " 
       
 12734        "16r009F"    16r00F7 " DIVISION SIGN " 
       
 12735        "16r00A0"    16r2550 " BOX DRAWINGS DOUBLE HORIZONTAL " 
       
 12736        "16r00A1"    16r2551 " BOX DRAWINGS DOUBLE VERTICAL " 
       
 12737        "16r00A2"    16r2552 " BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE " 
       
 12738        "16r00A3"    16r0451 " CYRILLIC SMALL LETTER IO " 
       
 12739        "16r00A4"    16r0454 " CYRILLIC SMALL LETTER UKRAINIAN IE " 
 12023        "16r00A4"    16r0454 " CYRILLIC SMALL LETTER UKRAINIAN IE " 
 12740        "16r00A5"    16r2554 " BOX DRAWINGS DOUBLE DOWN AND RIGHT " 
 12024        "16r00A5"    16r2554 " BOX DRAWINGS DOUBLE DOWN AND RIGHT " 
 12741        "16r00A6"    16r0456 " CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I " 
 12025        "16r00A6"    16r0456 " CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I " 
 12742        "16r00A7"    16r0457 " CYRILLIC SMALL LETTER YI (Ukrainian) " 
 12026        "16r00A7"    16r0457 " CYRILLIC SMALL LETTER YI (Ukrainian) " 
 12743        "16r00A8"    16r2557 " BOX DRAWINGS DOUBLE DOWN AND LEFT " 
 12027        "16r00A8"    16r2557 " BOX DRAWINGS DOUBLE DOWN AND LEFT " 
 12760        "16r00B9"    16r2567 " BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE " 
 12044        "16r00B9"    16r2567 " BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE " 
 12761        "16r00BA"    16r2568 " BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE " 
 12045        "16r00BA"    16r2568 " BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE " 
 12762        "16r00BB"    16r2569 " BOX DRAWINGS DOUBLE UP AND HORIZONTAL " 
 12046        "16r00BB"    16r2569 " BOX DRAWINGS DOUBLE UP AND HORIZONTAL " 
 12763        "16r00BC"    16r256A " BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE " 
 12047        "16r00BC"    16r256A " BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE " 
 12764        "16r00BD"    16r0490 " CYRILLIC CAPITAL LETTER GHE WITH UPTURN " 
 12048        "16r00BD"    16r0490 " CYRILLIC CAPITAL LETTER GHE WITH UPTURN " 
 12765        "16r00BE"    16r256C " BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL " 
 12049        ) at:(code - 16rA3).
 12766        "16r00BF"    16r00A9 " COPYRIGHT SIGN " 
       
 12767        "16r00C0"    16r044E " CYRILLIC SMALL LETTER YU " 
       
 12768        "16r00C1"    16r0430 " CYRILLIC SMALL LETTER A " 
       
 12769        "16r00C2"    16r0431 " CYRILLIC SMALL LETTER BE " 
       
 12770        "16r00C3"    16r0446 " CYRILLIC SMALL LETTER TSE " 
       
 12771        "16r00C4"    16r0434 " CYRILLIC SMALL LETTER DE " 
       
 12772        "16r00C5"    16r0435 " CYRILLIC SMALL LETTER IE " 
       
 12773        "16r00C6"    16r0444 " CYRILLIC SMALL LETTER EF " 
       
 12774        "16r00C7"    16r0433 " CYRILLIC SMALL LETTER GHE " 
       
 12775        "16r00C8"    16r0445 " CYRILLIC SMALL LETTER HA " 
       
 12776        "16r00C9"    16r0438 " CYRILLIC SMALL LETTER I " 
       
 12777        "16r00CA"    16r0439 " CYRILLIC SMALL LETTER SHORT I " 
       
 12778        "16r00CB"    16r043A " CYRILLIC SMALL LETTER KA " 
       
 12779        "16r00CC"    16r043B " CYRILLIC SMALL LETTER EL " 
       
 12780        "16r00CD"    16r043C " CYRILLIC SMALL LETTER EM " 
       
 12781        "16r00CE"    16r043D " CYRILLIC SMALL LETTER EN " 
       
 12782        "16r00CF"    16r043E " CYRILLIC SMALL LETTER O " 
       
 12783        "16r00D0"    16r043F " CYRILLIC SMALL LETTER PE " 
       
 12784        "16r00D1"    16r044F " CYRILLIC SMALL LETTER YA " 
       
 12785        "16r00D2"    16r0440 " CYRILLIC SMALL LETTER ER " 
       
 12786        "16r00D3"    16r0441 " CYRILLIC SMALL LETTER ES " 
       
 12787        "16r00D4"    16r0442 " CYRILLIC SMALL LETTER TE " 
       
 12788        "16r00D5"    16r0443 " CYRILLIC SMALL LETTER U " 
       
 12789        "16r00D6"    16r0436 " CYRILLIC SMALL LETTER ZHE " 
       
 12790        "16r00D7"    16r0432 " CYRILLIC SMALL LETTER VE " 
       
 12791        "16r00D8"    16r044C " CYRILLIC SMALL LETTER SOFT SIGN " 
       
 12792        "16r00D9"    16r044B " CYRILLIC SMALL LETTER YERU " 
       
 12793        "16r00DA"    16r0437 " CYRILLIC SMALL LETTER ZE " 
       
 12794        "16r00DB"    16r0448 " CYRILLIC SMALL LETTER SHA " 
       
 12795        "16r00DC"    16r044D " CYRILLIC SMALL LETTER E " 
       
 12796        "16r00DD"    16r0449 " CYRILLIC SMALL LETTER SHCHA " 
       
 12797        "16r00DE"    16r0447 " CYRILLIC SMALL LETTER CHE " 
       
 12798        "16r00DF"    16r044A " CYRILLIC SMALL LETTER HARD SIGN " 
       
 12799        "16r00E0"    16r042E " CYRILLIC CAPITAL LETTER YU " 
       
 12800        "16r00E1"    16r0410 " CYRILLIC CAPITAL LETTER A " 
       
 12801        "16r00E2"    16r0411 " CYRILLIC CAPITAL LETTER BE " 
       
 12802        "16r00E3"    16r0426 " CYRILLIC CAPITAL LETTER TSE " 
       
 12803        "16r00E4"    16r0414 " CYRILLIC CAPITAL LETTER DE " 
       
 12804        "16r00E5"    16r0415 " CYRILLIC CAPITAL LETTER IE " 
       
 12805        "16r00E6"    16r0424 " CYRILLIC CAPITAL LETTER EF " 
       
 12806        "16r00E7"    16r0413 " CYRILLIC CAPITAL LETTER GHE " 
       
 12807        "16r00E8"    16r0425 " CYRILLIC CAPITAL LETTER HA " 
       
 12808        "16r00E9"    16r0418 " CYRILLIC CAPITAL LETTER I " 
       
 12809        "16r00EA"    16r0419 " CYRILLIC CAPITAL LETTER SHORT I " 
       
 12810        "16r00EB"    16r041A " CYRILLIC CAPITAL LETTER KA " 
       
 12811        "16r00EC"    16r041B " CYRILLIC CAPITAL LETTER EL " 
       
 12812        "16r00ED"    16r041C " CYRILLIC CAPITAL LETTER EM " 
       
 12813        "16r00EE"    16r041D " CYRILLIC CAPITAL LETTER EN " 
       
 12814        "16r00EF"    16r041E " CYRILLIC CAPITAL LETTER O " 
       
 12815        "16r00F0"    16r041F " CYRILLIC CAPITAL LETTER PE " 
       
 12816        "16r00F1"    16r042F " CYRILLIC CAPITAL LETTER YA " 
       
 12817        "16r00F2"    16r0420 " CYRILLIC CAPITAL LETTER ER " 
       
 12818        "16r00F3"    16r0421 " CYRILLIC CAPITAL LETTER ES " 
       
 12819        "16r00F4"    16r0422 " CYRILLIC CAPITAL LETTER TE " 
       
 12820        "16r00F5"    16r0423 " CYRILLIC CAPITAL LETTER U " 
       
 12821        "16r00F6"    16r0416 " CYRILLIC CAPITAL LETTER ZHE " 
       
 12822        "16r00F7"    16r0412 " CYRILLIC CAPITAL LETTER VE " 
       
 12823        "16r00F8"    16r042C " CYRILLIC CAPITAL LETTER SOFT SIGN " 
       
 12824        "16r00F9"    16r042B " CYRILLIC CAPITAL LETTER YERU " 
       
 12825        "16r00FA"    16r0417 " CYRILLIC CAPITAL LETTER ZE " 
       
 12826        "16r00FB"    16r0428 " CYRILLIC CAPITAL LETTER SHA " 
       
 12827        "16r00FC"    16r042D " CYRILLIC CAPITAL LETTER E " 
       
 12828        "16r00FD"    16r0429 " CYRILLIC CAPITAL LETTER SHCHA " 
       
 12829        "16r00FE"    16r0427 " CYRILLIC CAPITAL LETTER CHE " 
       
 12830        "16r00FF"    16r042A " CYRILLIC CAPITAL LETTER HARD SIGN " 
       
 12831        ) at:(code - 16r7F).
       
 12832 !
 12050 !
 12833 
 12051 
 12834 encode:unicodeArg
 12052 encode:unicodeArg
 12835     "Automagically generated by generateCode - do not modify.
 12053     "Automagically generated by generateCode - do not modify.
 12836      Encode from unicode into my encoding."
 12054      Encode from unicode into my encoding."
 12837 
 12055 
 12838     |unicode "{ Class: SmallInteger }"|
 12056     |unicode "{ Class: SmallInteger }"|
 12839 
 12057 
 12840     unicode := unicodeArg.
 12058     unicode := unicodeArg.
 12841     unicode <= 16r7F ifTrue:[ ^ unicode ].
 12059     unicode <= 16r403 ifTrue:[
 12842     unicode > 16r25A0 ifTrue:[
 12060         ^ super encode:codeArg.
 12843         ^ self encodingError.
       
 12844     ].
 12061     ].
 12845     unicode <= 16r9F ifTrue:[
 12062     unicode > 16r256B ifTrue:[
 12846         ^ self encodingError.
 12063         ^ super encode:codeArg.
 12847     ].
 12064     ].
 12848     unicode <= 16r491 ifTrue:[
 12065     unicode <= 16r491 ifTrue:[
 12849         unicode <= 16rF7 ifTrue:[
       
 12850             unicode <= 16rB7 ifTrue:[
       
 12851                 [
       
 12852                     |t|
       
 12853                     t := #[
       
 12854                        "16r00A0"    16r9A " NO-BREAK SPACE " 
       
 12855                        "16r00A1"    16r00 " invalid " 
       
 12856                        "16r00A2"    16r00 " invalid " 
       
 12857                        "16r00A3"    16r00 " invalid " 
       
 12858                        "16r00A4"    16r00 " invalid " 
       
 12859                        "16r00A5"    16r00 " invalid " 
       
 12860                        "16r00A6"    16r00 " invalid " 
       
 12861                        "16r00A7"    16r00 " invalid " 
       
 12862                        "16r00A8"    16r00 " invalid " 
       
 12863                        "16r00A9"    16rBF " COPYRIGHT SIGN " 
       
 12864                        "16r00AA"    16r00 " invalid " 
       
 12865                        "16r00AB"    16r00 " invalid " 
       
 12866                        "16r00AC"    16r00 " invalid " 
       
 12867                        "16r00AD"    16r00 " invalid " 
       
 12868                        "16r00AE"    16r00 " invalid " 
       
 12869                        "16r00AF"    16r00 " invalid " 
       
 12870                        "16r00B0"    16r9C " DEGREE SIGN " 
       
 12871                        "16r00B1"    16r00 " invalid " 
       
 12872                        "16r00B2"    16r9D " SUPERSCRIPT TWO " 
       
 12873                        "16r00B3"    16r00 " invalid " 
       
 12874                        "16r00B4"    16r00 " invalid " 
       
 12875                        "16r00B5"    16r00 " invalid " 
       
 12876                        "16r00B6"    16r00 " invalid " 
       
 12877                        "16r00B7"    16r9E " MIDDLE DOT " 
       
 12878                        ] at:(unicode - 16r9F).
       
 12879                     t == 0 ifFalse:[^ t].
       
 12880                     ^ self encodingError
       
 12881                 ] value.
       
 12882             ].
       
 12883             unicode <= 16rF6 ifTrue:[
       
 12884                 ^ self encodingError.
       
 12885             ].
       
 12886             ^  "16r00F7" 16r009F " DIVISION SIGN " 
       
 12887         ].
       
 12888         unicode <= 16r400 ifTrue:[
       
 12889             ^ self encodingError.
       
 12890         ].
       
 12891         unicode <= 16r457 ifTrue:[
 12066         unicode <= 16r457 ifTrue:[
 12892             [
 12067             [
 12893                 |t|
 12068                 |t|
 12894                 t := #[
 12069                 t := #[
 12895                    "16r0401"    16rB3 " CYRILLIC CAPITAL LETTER IO " 
       
 12896                    "16r0402"    16r00 " invalid " 
       
 12897                    "16r0403"    16r00 " invalid " 
       
 12898                    "16r0404"    16rB4 " CYRILLIC CAPITAL LETTER UKRAINIAN IE " 
 12070                    "16r0404"    16rB4 " CYRILLIC CAPITAL LETTER UKRAINIAN IE " 
 12899                    "16r0405"    16r00 " invalid " 
 12071                    "16r0405"    16r00 " invalid " 
 12900                    "16r0406"    16rB6 " CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I " 
 12072                    "16r0406"    16rB6 " CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I " 
 12901                    "16r0407"    16rB7 " CYRILLIC CAPITAL LETTER YI (Ukrainian) " 
 12073                    "16r0407"    16rB7 " CYRILLIC CAPITAL LETTER YI (Ukrainian) " 
 12902                    "16r0408"    16r00 " invalid " 
 12074                    "16r0408"    16r00 " invalid " 
 12977                    "16r0453"    16r00 " invalid " 
 12149                    "16r0453"    16r00 " invalid " 
 12978                    "16r0454"    16rA4 " CYRILLIC SMALL LETTER UKRAINIAN IE " 
 12150                    "16r0454"    16rA4 " CYRILLIC SMALL LETTER UKRAINIAN IE " 
 12979                    "16r0455"    16r00 " invalid " 
 12151                    "16r0455"    16r00 " invalid " 
 12980                    "16r0456"    16rA6 " CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I " 
 12152                    "16r0456"    16rA6 " CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I " 
 12981                    "16r0457"    16rA7 " CYRILLIC SMALL LETTER YI (Ukrainian) " 
 12153                    "16r0457"    16rA7 " CYRILLIC SMALL LETTER YI (Ukrainian) " 
 12982                    ] at:(unicode - 16r400).
 12154                    ] at:(unicode - 16r403).
 12983                 t == 0 ifFalse:[^ t].
 12155                 t == 0 ifFalse:[^ t].
 12984                 ^ self encodingError
 12156                 ^ self decodingError.
 12985             ] value.
 12157             ] value.
 12986         ].
 12158         ].
 12987         unicode <= 16r48F ifTrue:[
 12159         unicode <= 16r48F ifTrue:[
 12988             ^ self encodingError.
 12160             ^ self decodingError..
 12989         ].
 12161         ].
 12990         ^ #[
 12162         ^ #[
 12991            "16r0490"    16rBD " CYRILLIC CAPITAL LETTER GHE WITH UPTURN " 
 12163            "16r0490"    16rBD " CYRILLIC CAPITAL LETTER GHE WITH UPTURN " 
 12992            "16r0491"    16rAD " CYRILLIC SMALL LETTER GHE WITH UPTURN " 
 12164            "16r0491"    16rAD " CYRILLIC SMALL LETTER GHE WITH UPTURN " 
 12993            ] at:(unicode - 16r48F).
 12165            ] at:(unicode - 16r48F).
 12994     ].
 12166     ].
 12995     unicode <= 16r2218 ifTrue:[
 12167     unicode <= 16r2218 ifTrue:[
 12996         ^ self encodingError.
 12168         ^ self decodingError..
 12997     ].
 12169     ].
 12998     unicode <= 16r2321 ifTrue:[
 12170     unicode <= 16r2321 ifTrue:[
 12999         unicode <= 16r2265 ifTrue:[
 12171         unicode <= 16r2265 ifTrue:[
 13000             unicode <= 16r221A ifTrue:[
 12172             unicode <= 16r221A ifTrue:[
 13001                 ^ #[
 12173                 ^ #[
 13002                    "16r2219"    16r95 " BULLET OPERATOR " 
 12174                    "16r2219"    16r95 " BULLET OPERATOR " 
 13003                    "16r221A"    16r96 " SQUARE ROOT " 
 12175                    "16r221A"    16r96 " SQUARE ROOT " 
 13004                    ] at:(unicode - 16r2218).
 12176                    ] at:(unicode - 16r2218).
 13005             ].
 12177             ].
 13006             unicode <= 16r2247 ifTrue:[
 12178             unicode <= 16r2247 ifTrue:[
 13007                 ^ self encodingError.
 12179                 ^ self decodingError..
 13008             ].
 12180             ].
 13009             unicode == 16r2248 ifTrue:[
 12181             unicode == 16r2248 ifTrue:[
 13010                 ^  "16r2248" 16r0097 " ALMOST EQUAL TO " 
 12182                 ^  "16r2248" 16r0097 " ALMOST EQUAL TO " 
 13011             ].
 12183             ].
 13012             unicode <= 16r2263 ifTrue:[
 12184             unicode <= 16r2263 ifTrue:[
 13013                 ^ self encodingError.
 12185                 ^ self decodingError..
 13014             ].
 12186             ].
 13015             ^ #[
 12187             ^ #[
 13016                "16r2264"    16r98 " LESS-THAN OR EQUAL TO " 
 12188                "16r2264"    16r98 " LESS-THAN OR EQUAL TO " 
 13017                "16r2265"    16r99 " GREATER-THAN OR EQUAL TO " 
 12189                "16r2265"    16r99 " GREATER-THAN OR EQUAL TO " 
 13018                ] at:(unicode - 16r2263).
 12190                ] at:(unicode - 16r2263).
 13019         ].
 12191         ].
 13020         unicode <= 16r231F ifTrue:[
 12192         unicode <= 16r231F ifTrue:[
 13021             ^ self encodingError.
 12193             ^ self decodingError..
 13022         ].
 12194         ].
 13023         ^ #[
 12195         ^ #[
 13024            "16r2320"    16r93 " TOP HALF INTEGRAL " 
 12196            "16r2320"    16r93 " TOP HALF INTEGRAL " 
 13025            "16r2321"    16r9B " BOTTOM HALF INTEGRAL " 
 12197            "16r2321"    16r9B " BOTTOM HALF INTEGRAL " 
 13026            ] at:(unicode - 16r231F).
 12198            ] at:(unicode - 16r231F).
 13027     ].
 12199     ].
 13028     unicode <= 16r24FF ifTrue:[
 12200     unicode <= 16r24FF ifTrue:[
 13029         ^ self encodingError.
 12201         ^ self decodingError..
 13030     ].
 12202     ].
 13031     [
 12203     [
 13032         |t|
 12204         |t|
 13033         t := #[
 12205         t := #[
 13034            "16r2500"    16r80 " BOX DRAWINGS LIGHT HORIZONTAL " 
 12206            "16r2500"    16r80 " BOX DRAWINGS LIGHT HORIZONTAL " 
 13137            "16r2567"    16rB9 " BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE " 
 12309            "16r2567"    16rB9 " BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE " 
 13138            "16r2568"    16rBA " BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE " 
 12310            "16r2568"    16rBA " BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE " 
 13139            "16r2569"    16rBB " BOX DRAWINGS DOUBLE UP AND HORIZONTAL " 
 12311            "16r2569"    16rBB " BOX DRAWINGS DOUBLE UP AND HORIZONTAL " 
 13140            "16r256A"    16rBC " BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE " 
 12312            "16r256A"    16rBC " BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE " 
 13141            "16r256B"    16r00 " invalid " 
 12313            "16r256B"    16r00 " invalid " 
 13142            "16r256C"    16rBE " BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL " 
       
 13143            "16r256D"    16r00 " invalid " 
       
 13144            "16r256E"    16r00 " invalid " 
       
 13145            "16r256F"    16r00 " invalid " 
       
 13146            "16r2570"    16r00 " invalid " 
       
 13147            "16r2571"    16r00 " invalid " 
       
 13148            "16r2572"    16r00 " invalid " 
       
 13149            "16r2573"    16r00 " invalid " 
       
 13150            "16r2574"    16r00 " invalid " 
       
 13151            "16r2575"    16r00 " invalid " 
       
 13152            "16r2576"    16r00 " invalid " 
       
 13153            "16r2577"    16r00 " invalid " 
       
 13154            "16r2578"    16r00 " invalid " 
       
 13155            "16r2579"    16r00 " invalid " 
       
 13156            "16r257A"    16r00 " invalid " 
       
 13157            "16r257B"    16r00 " invalid " 
       
 13158            "16r257C"    16r00 " invalid " 
       
 13159            "16r257D"    16r00 " invalid " 
       
 13160            "16r257E"    16r00 " invalid " 
       
 13161            "16r257F"    16r00 " invalid " 
       
 13162            "16r2580"    16r8B " UPPER HALF BLOCK " 
       
 13163            "16r2581"    16r00 " invalid " 
       
 13164            "16r2582"    16r00 " invalid " 
       
 13165            "16r2583"    16r00 " invalid " 
       
 13166            "16r2584"    16r8C " LOWER HALF BLOCK " 
       
 13167            "16r2585"    16r00 " invalid " 
       
 13168            "16r2586"    16r00 " invalid " 
       
 13169            "16r2587"    16r00 " invalid " 
       
 13170            "16r2588"    16r8D " FULL BLOCK " 
       
 13171            "16r2589"    16r00 " invalid " 
       
 13172            "16r258A"    16r00 " invalid " 
       
 13173            "16r258B"    16r00 " invalid " 
       
 13174            "16r258C"    16r8E " LEFT HALF BLOCK " 
       
 13175            "16r258D"    16r00 " invalid " 
       
 13176            "16r258E"    16r00 " invalid " 
       
 13177            "16r258F"    16r00 " invalid " 
       
 13178            "16r2590"    16r8F " RIGHT HALF BLOCK " 
       
 13179            "16r2591"    16r90 " LIGHT SHADE " 
       
 13180            "16r2592"    16r91 " MEDIUM SHADE " 
       
 13181            "16r2593"    16r92 " DARK SHADE " 
       
 13182            "16r2594"    16r00 " invalid " 
       
 13183            "16r2595"    16r00 " invalid " 
       
 13184            "16r2596"    16r00 " invalid " 
       
 13185            "16r2597"    16r00 " invalid " 
       
 13186            "16r2598"    16r00 " invalid " 
       
 13187            "16r2599"    16r00 " invalid " 
       
 13188            "16r259A"    16r00 " invalid " 
       
 13189            "16r259B"    16r00 " invalid " 
       
 13190            "16r259C"    16r00 " invalid " 
       
 13191            "16r259D"    16r00 " invalid " 
       
 13192            "16r259E"    16r00 " invalid " 
       
 13193            "16r259F"    16r00 " invalid " 
       
 13194            "16r25A0"    16r94 " BLACK SQUARE " 
       
 13195            ] at:(unicode - 16r24FF).
 12314            ] at:(unicode - 16r24FF).
 13196         t == 0 ifFalse:[^ t].
 12315         t == 0 ifFalse:[^ t].
 13197         ^ self encodingError
 12316         ^ self decodingError.
 13198     ] value.
 12317     ] value.
 13199 ! !
 12318 ! !
 13200 
 12319 
 13201 !CharacterEncoder::KSC5601 class methodsFor:'mapping'!
 12320 !CharacterEncoder::KSC5601 class methodsFor:'mapping'!
 13202 
 12321 
 18140     ^ 'VENDORS/APPLE/SYMBOL.TXT'
 17259     ^ 'VENDORS/APPLE/SYMBOL.TXT'
 18141 ! !
 17260 ! !
 18142 
 17261 
 18143 !CharacterEncoder::MAC_Thai class methodsFor:'mapping'!
 17262 !CharacterEncoder::MAC_Thai class methodsFor:'mapping'!
 18144 
 17263 
       
 17264 mapping
       
 17265 "
       
 17266 # From: http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/THAI.TXT
       
 17267 
       
 17268 #=======================================================================
       
 17269 #   File name:  THAI.TXT
       
 17270 #
       
 17271 #   Contents:   Map (external version) from Mac OS Thai
       
 17272 #               character set to Unicode 3.2
       
 17273 #
       
 17274 #   Copyright:  (c) 1995-2002 by Apple Computer, Inc., all rights
       
 17275 #               reserved.
       
 17276 #
       
 17277 #   Contact:    charsets@apple.com
       
 17278 #
       
 17279 #   Changes:
       
 17280 #
       
 17281 #      b3,c1 2002-Dec-19    Update mapping for 0xDB to use new Unicode
       
 17282 #                           3.2 WORD JOINER instead of ZWNBSP (BOM).
       
 17283 #                           Update URLs. Matches internal utom<b3>.
       
 17284 #       b02  1999-Sep-22    Update contact e-mail address. Matches
       
 17285 #                           internal utom<b1>, ufrm<b2>, and Text
       
 17286 #                           Encoding Converter version 1.5.
       
 17287 #       n07  1998-Feb-05    Update to match internal utom<n5>, ufrm<n13>
       
 17288 #                           and Text Encoding Converter version 1.3:
       
 17289 #                           Use standard Unicodes plus transcoding hints
       
 17290 #                           instead of single corporate characters; see
       
 17291 #                           details below. Also update header comments
       
 17292 #                           to new format.
       
 17293 #       n04  1995-Nov-17    First version (after fixing some typos).
       
 17294 #                           Matches internal ufrm<n6>.
       
 17295 #
       
 17296 # Standard header:
       
 17297 # ----------------
       
 17298 #
       
 17299 #   Apple, the Apple logo, and Macintosh are trademarks of Apple
       
 17300 #   Computer, Inc., registered in the United States and other countries.
       
 17301 #   Unicode is a trademark of Unicode Inc. For the sake of brevity,
       
 17302 #   throughout this document, 'Macintosh' can be used to refer to
       
 17303 #   Macintosh computers and 'Unicode' can be used to refer to the
       
 17304 #   Unicode standard.
       
 17305 #
       
 17306 #   Apple makes no warranty or representation, either express or
       
 17307 #   implied, with respect to these tables, their quality, accuracy, or
       
 17308 #   fitness for a particular purpose. In no event will Apple be liable
       
 17309 #   for direct, indirect, special, incidental, or consequential damages 
       
 17310 #   resulting from any defect or inaccuracy in this document or the
       
 17311 #   accompanying tables.
       
 17312 #
       
 17313 #   These mapping tables and character lists are subject to change.
       
 17314 #   The latest tables should be available from the following:
       
 17315 #
       
 17316 #   <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
       
 17317 #
       
 17318 #   For general information about Mac OS encodings and these mapping
       
 17319 #   tables, see the file 'README.TXT'.
       
 17320 #
       
 17321 # Format:
       
 17322 # -------
       
 17323 #
       
 17324 #   Three tab-separated columns;
       
 17325 #   '#' begins a comment which continues to the end of the line.
       
 17326 #     Column #1 is the Mac OS Thai code (in hex as 0xNN)
       
 17327 #     Column #2 is the corresponding Unicode or Unicode sequence
       
 17328 #       (in hex as 0xNNNN or 0xNNNN+0xNNNN).
       
 17329 #     Column #3 is a comment containing the Unicode name
       
 17330 #
       
 17331 #   The entries are in Mac OS Thai code order.
       
 17332 #
       
 17333 #   Some of these mappings require the use of corporate characters.
       
 17334 #   See the file 'CORPCHAR.TXT' and notes below.
       
 17335 #
       
 17336 #   Control character mappings are not shown in this table, following
       
 17337 #   the conventions of the standard UTC mapping tables. However, the
       
 17338 #   Mac OS Thai character set uses the standard control characters at
       
 17339 #   0x00-0x1F and 0x7F.
       
 17340 #
       
 17341 # Notes on Mac OS Thai:
       
 17342 # ---------------------
       
 17343 #
       
 17344 #   Codes 0xA1-0xDA and 0xDF-0xFB are the character set from Thai
       
 17345 #   standard TIS 620-2533, except that the following changes are
       
 17346 #   made:
       
 17347 #     0xEE is TRADE MARK SIGN (instead of THAI CHARACTER YAMAKKAN)
       
 17348 #     0xFA is REGISTERED SIGN (instead of THAI CHARACTER ANGKHANKHU)
       
 17349 #     0xFB is COPYRIGHT SIGN (instead of THAI CHARACTER KHOMUT)
       
 17350 #
       
 17351 #   Codes 0x80-0x82, 0x8D-0x8E, 0x91, 0x9D-0x9E, and 0xDB-0xDE are
       
 17352 #   various additional punctuation marks (e.g. curly quotes,
       
 17353 #   ellipsis), no-break space, and two special characters 'word join'
       
 17354 #   and 'word break'.
       
 17355 #
       
 17356 #   Codes 0x83-0x8C, 0x8F, and 0x92-0x9C are for positional variants
       
 17357 #   of the upper vowels, tone marks, and other signs at 0xD1,
       
 17358 #   0xD4-0xD7, and 0xE7-0xED. The positional variants would normally
       
 17359 #   be considered presentation forms only and not characters. In most
       
 17360 #   cases they are not typed directly; they are selected automatically
       
 17361 #   at display time by the WorldScript software. However, using the
       
 17362 #   Thai-DTP keyboard, the presentation forms can in fact be typed
       
 17363 #   directly using dead keys. Thus they must be treated as real
       
 17364 #   characters in the Mac OS Thai encoding. They are mapped using
       
 17365 #   variant tags; see below.
       
 17366 #
       
 17367 #   Several code points are undefined and unused (they cannot be
       
 17368 #   typed using any of the Mac OS Thai keyboard layouts): 0x90, 0x9F,
       
 17369 #   0xFC-0xFE. These are not shown in the table below.
       
 17370 #
       
 17371 # Unicode mapping issues and notes:
       
 17372 # ---------------------------------
       
 17373 #
       
 17374 #   The goals in the Apple mappings provided here are:
       
 17375 #   - Ensure roundtrip mapping from every character in the Mac OS Thai
       
 17376 #   character set to Unicode and back
       
 17377 #   - Use standard Unicode characters as much as possible, to maximize
       
 17378 #   interchangeability of the resulting Unicode text. Whenever possible,
       
 17379 #   avoid having content carried by private-use characters.
       
 17380 #
       
 17381 #   To satisfy both goals, we use private use characters to mark variants
       
 17382 #   that are similar to a sequence of one or more standard Unicode
       
 17383 #   characters.
       
 17384 #
       
 17385 #   Apple has defined a block of 32 corporate characters as 'transcoding
       
 17386 #   hints.' These are used in combination with standard Unicode characters
       
 17387 #   to force them to be treated in a special way for mapping to other
       
 17388 #   encodings; they have no other effect. Sixteen of these transcoding
       
 17389 #   hints are 'grouping hints' - they indicate that the next 2-4 Unicode
       
 17390 #   characters should be treated as a single entity for transcoding. The
       
 17391 #   other sixteen transcoding hints are 'variant tags' - they are like
       
 17392 #   combining characters, and can follow a standard Unicode (or a sequence
       
 17393 #   consisting of a base character and other combining characters) to
       
 17394 #   cause it to be treated in a special way for transcoding. These always
       
 17395 #   terminate a combining-character sequence.
       
 17396 #
       
 17397 #   The transcoding coding hints used in this mapping table are four
       
 17398 #   variant tags in the range 0xF873-75. Since these are combined with
       
 17399 #   standard Unicode characters, some characters in the Mac OS Thai
       
 17400 #   character set map to a sequence of two Unicodes instead of a single
       
 17401 #   Unicode character. For example, the Mac OS Thai character at 0x83 is a
       
 17402 #   low-left positional variant of THAI CHARACTER MAI EK (the standard
       
 17403 #   mapping is for the abstract character at 0xE8). So 0x83 is mapped to
       
 17404 #   0x0E48 (THAI CHARACTER MAI EK) + 0xF875 (a variant tag).
       
 17405 #
       
 17406 # Details of mapping changes in each version:
       
 17407 # -------------------------------------------
       
 17408 #
       
 17409 #   Changes from version b02 to version b03/c01:
       
 17410 #
       
 17411 #   - Update mapping for 0xDB to use new Unicode 3.2 character U+2060
       
 17412 #     WORD JOINER instead of U+FEFF ZERO WIDTH NO-BREAK SPACE (BOM)
       
 17413 #
       
 17414 #   Changes from version n04 to version n07:
       
 17415 #
       
 17416 #   - Changed mappings of the positional variants to use standard
       
 17417 #   Unicodes + transcoding hint, instead of using single corporate
       
 17418 #   zone characters. This affected the mappings for the following:
       
 17419 #   0x83-08C, 0x8F, 0x92-0x9C
       
 17420 #
       
 17421 #   - Just comment out unused code points in the table, instead
       
 17422 #   of mapping them to U+FFFD.
       
 17423 #
       
 17424 ##################
       
 17425 
       
 17426 0x20	0x0020	# SPACE
       
 17427 0x21	0x0021	# EXCLAMATION MARK
       
 17428 0x22	0x0022	# QUOTATION MARK
       
 17429 0x23	0x0023	# NUMBER SIGN
       
 17430 0x24	0x0024	# DOLLAR SIGN
       
 17431 0x25	0x0025	# PERCENT SIGN
       
 17432 0x26	0x0026	# AMPERSAND
       
 17433 0x27	0x0027	# APOSTROPHE
       
 17434 0x28	0x0028	# LEFT PARENTHESIS
       
 17435 0x29	0x0029	# RIGHT PARENTHESIS
       
 17436 0x2A	0x002A	# ASTERISK
       
 17437 0x2B	0x002B	# PLUS SIGN
       
 17438 0x2C	0x002C	# COMMA
       
 17439 0x2D	0x002D	# HYPHEN-MINUS
       
 17440 0x2E	0x002E	# FULL STOP
       
 17441 0x2F	0x002F	# SOLIDUS
       
 17442 0x30	0x0030	# DIGIT ZERO
       
 17443 0x31	0x0031	# DIGIT ONE
       
 17444 0x32	0x0032	# DIGIT TWO
       
 17445 0x33	0x0033	# DIGIT THREE
       
 17446 0x34	0x0034	# DIGIT FOUR
       
 17447 0x35	0x0035	# DIGIT FIVE
       
 17448 0x36	0x0036	# DIGIT SIX
       
 17449 0x37	0x0037	# DIGIT SEVEN
       
 17450 0x38	0x0038	# DIGIT EIGHT
       
 17451 0x39	0x0039	# DIGIT NINE
       
 17452 0x3A	0x003A	# COLON
       
 17453 0x3B	0x003B	# SEMICOLON
       
 17454 0x3C	0x003C	# LESS-THAN SIGN
       
 17455 0x3D	0x003D	# EQUALS SIGN
       
 17456 0x3E	0x003E	# GREATER-THAN SIGN
       
 17457 0x3F	0x003F	# QUESTION MARK
       
 17458 0x40	0x0040	# COMMERCIAL AT
       
 17459 0x41	0x0041	# LATIN CAPITAL LETTER A
       
 17460 0x42	0x0042	# LATIN CAPITAL LETTER B
       
 17461 0x43	0x0043	# LATIN CAPITAL LETTER C
       
 17462 0x44	0x0044	# LATIN CAPITAL LETTER D
       
 17463 0x45	0x0045	# LATIN CAPITAL LETTER E
       
 17464 0x46	0x0046	# LATIN CAPITAL LETTER F
       
 17465 0x47	0x0047	# LATIN CAPITAL LETTER G
       
 17466 0x48	0x0048	# LATIN CAPITAL LETTER H
       
 17467 0x49	0x0049	# LATIN CAPITAL LETTER I
       
 17468 0x4A	0x004A	# LATIN CAPITAL LETTER J
       
 17469 0x4B	0x004B	# LATIN CAPITAL LETTER K
       
 17470 0x4C	0x004C	# LATIN CAPITAL LETTER L
       
 17471 0x4D	0x004D	# LATIN CAPITAL LETTER M
       
 17472 0x4E	0x004E	# LATIN CAPITAL LETTER N
       
 17473 0x4F	0x004F	# LATIN CAPITAL LETTER O
       
 17474 0x50	0x0050	# LATIN CAPITAL LETTER P
       
 17475 0x51	0x0051	# LATIN CAPITAL LETTER Q
       
 17476 0x52	0x0052	# LATIN CAPITAL LETTER R
       
 17477 0x53	0x0053	# LATIN CAPITAL LETTER S
       
 17478 0x54	0x0054	# LATIN CAPITAL LETTER T
       
 17479 0x55	0x0055	# LATIN CAPITAL LETTER U
       
 17480 0x56	0x0056	# LATIN CAPITAL LETTER V
       
 17481 0x57	0x0057	# LATIN CAPITAL LETTER W
       
 17482 0x58	0x0058	# LATIN CAPITAL LETTER X
       
 17483 0x59	0x0059	# LATIN CAPITAL LETTER Y
       
 17484 0x5A	0x005A	# LATIN CAPITAL LETTER Z
       
 17485 0x5B	0x005B	# LEFT SQUARE BRACKET
       
 17486 0x5C	0x005C	# REVERSE SOLIDUS
       
 17487 0x5D	0x005D	# RIGHT SQUARE BRACKET
       
 17488 0x5E	0x005E	# CIRCUMFLEX ACCENT
       
 17489 0x5F	0x005F	# LOW LINE
       
 17490 0x60	0x0060	# GRAVE ACCENT
       
 17491 0x61	0x0061	# LATIN SMALL LETTER A
       
 17492 0x62	0x0062	# LATIN SMALL LETTER B
       
 17493 0x63	0x0063	# LATIN SMALL LETTER C
       
 17494 0x64	0x0064	# LATIN SMALL LETTER D
       
 17495 0x65	0x0065	# LATIN SMALL LETTER E
       
 17496 0x66	0x0066	# LATIN SMALL LETTER F
       
 17497 0x67	0x0067	# LATIN SMALL LETTER G
       
 17498 0x68	0x0068	# LATIN SMALL LETTER H
       
 17499 0x69	0x0069	# LATIN SMALL LETTER I
       
 17500 0x6A	0x006A	# LATIN SMALL LETTER J
       
 17501 0x6B	0x006B	# LATIN SMALL LETTER K
       
 17502 0x6C	0x006C	# LATIN SMALL LETTER L
       
 17503 0x6D	0x006D	# LATIN SMALL LETTER M
       
 17504 0x6E	0x006E	# LATIN SMALL LETTER N
       
 17505 0x6F	0x006F	# LATIN SMALL LETTER O
       
 17506 0x70	0x0070	# LATIN SMALL LETTER P
       
 17507 0x71	0x0071	# LATIN SMALL LETTER Q
       
 17508 0x72	0x0072	# LATIN SMALL LETTER R
       
 17509 0x73	0x0073	# LATIN SMALL LETTER S
       
 17510 0x74	0x0074	# LATIN SMALL LETTER T
       
 17511 0x75	0x0075	# LATIN SMALL LETTER U
       
 17512 0x76	0x0076	# LATIN SMALL LETTER V
       
 17513 0x77	0x0077	# LATIN SMALL LETTER W
       
 17514 0x78	0x0078	# LATIN SMALL LETTER X
       
 17515 0x79	0x0079	# LATIN SMALL LETTER Y
       
 17516 0x7A	0x007A	# LATIN SMALL LETTER Z
       
 17517 0x7B	0x007B	# LEFT CURLY BRACKET
       
 17518 0x7C	0x007C	# VERTICAL LINE
       
 17519 0x7D	0x007D	# RIGHT CURLY BRACKET
       
 17520 0x7E	0x007E	# TILDE
       
 17521 #
       
 17522 0x80	0x00AB	# LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 17523 0x81	0x00BB	# RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 17524 0x82	0x2026	# HORIZONTAL ELLIPSIS
       
 17525 0x83	0x0E48+0xF875	# THAI CHARACTER MAI EK, low left position
       
 17526 0x84	0x0E49+0xF875	# THAI CHARACTER MAI THO, low left position
       
 17527 0x85	0x0E4A+0xF875	# THAI CHARACTER MAI TRI, low left position
       
 17528 0x86	0x0E4B+0xF875	# THAI CHARACTER MAI CHATTAWA, low left position
       
 17529 0x87	0x0E4C+0xF875	# THAI CHARACTER THANTHAKHAT, low left position
       
 17530 0x88	0x0E48+0xF873	# THAI CHARACTER MAI EK, low position
       
 17531 0x89	0x0E49+0xF873	# THAI CHARACTER MAI THO, low position
       
 17532 0x8A	0x0E4A+0xF873	# THAI CHARACTER MAI TRI, low position
       
 17533 0x8B	0x0E4B+0xF873	# THAI CHARACTER MAI CHATTAWA, low position
       
 17534 0x8C	0x0E4C+0xF873	# THAI CHARACTER THANTHAKHAT, low position
       
 17535 0x8D	0x201C	# LEFT DOUBLE QUOTATION MARK
       
 17536 0x8E	0x201D	# RIGHT DOUBLE QUOTATION MARK
       
 17537 0x8F	0x0E4D+0xF874	# THAI CHARACTER NIKHAHIT, left position
       
 17538 #
       
 17539 0x91	0x2022	# BULLET
       
 17540 0x92	0x0E31+0xF874	# THAI CHARACTER MAI HAN-AKAT, left position
       
 17541 0x93	0x0E47+0xF874	# THAI CHARACTER MAITAIKHU, left position
       
 17542 0x94	0x0E34+0xF874	# THAI CHARACTER SARA I, left position
       
 17543 0x95	0x0E35+0xF874	# THAI CHARACTER SARA II, left position
       
 17544 0x96	0x0E36+0xF874	# THAI CHARACTER SARA UE, left position
       
 17545 0x97	0x0E37+0xF874	# THAI CHARACTER SARA UEE, left position
       
 17546 0x98	0x0E48+0xF874	# THAI CHARACTER MAI EK, left position
       
 17547 0x99	0x0E49+0xF874	# THAI CHARACTER MAI THO, left position
       
 17548 0x9A	0x0E4A+0xF874	# THAI CHARACTER MAI TRI, left position
       
 17549 0x9B	0x0E4B+0xF874	# THAI CHARACTER MAI CHATTAWA, left position
       
 17550 0x9C	0x0E4C+0xF874	# THAI CHARACTER THANTHAKHAT, left position
       
 17551 0x9D	0x2018	# LEFT SINGLE QUOTATION MARK
       
 17552 0x9E	0x2019	# RIGHT SINGLE QUOTATION MARK
       
 17553 #
       
 17554 0xA0	0x00A0	# NO-BREAK SPACE
       
 17555 0xA1	0x0E01	# THAI CHARACTER KO KAI
       
 17556 0xA2	0x0E02	# THAI CHARACTER KHO KHAI
       
 17557 0xA3	0x0E03	# THAI CHARACTER KHO KHUAT
       
 17558 0xA4	0x0E04	# THAI CHARACTER KHO KHWAI
       
 17559 0xA5	0x0E05	# THAI CHARACTER KHO KHON
       
 17560 0xA6	0x0E06	# THAI CHARACTER KHO RAKHANG
       
 17561 0xA7	0x0E07	# THAI CHARACTER NGO NGU
       
 17562 0xA8	0x0E08	# THAI CHARACTER CHO CHAN
       
 17563 0xA9	0x0E09	# THAI CHARACTER CHO CHING
       
 17564 0xAA	0x0E0A	# THAI CHARACTER CHO CHANG
       
 17565 0xAB	0x0E0B	# THAI CHARACTER SO SO
       
 17566 0xAC	0x0E0C	# THAI CHARACTER CHO CHOE
       
 17567 0xAD	0x0E0D	# THAI CHARACTER YO YING
       
 17568 0xAE	0x0E0E	# THAI CHARACTER DO CHADA
       
 17569 0xAF	0x0E0F	# THAI CHARACTER TO PATAK
       
 17570 0xB0	0x0E10	# THAI CHARACTER THO THAN
       
 17571 0xB1	0x0E11	# THAI CHARACTER THO NANGMONTHO
       
 17572 0xB2	0x0E12	# THAI CHARACTER THO PHUTHAO
       
 17573 0xB3	0x0E13	# THAI CHARACTER NO NEN
       
 17574 0xB4	0x0E14	# THAI CHARACTER DO DEK
       
 17575 0xB5	0x0E15	# THAI CHARACTER TO TAO
       
 17576 0xB6	0x0E16	# THAI CHARACTER THO THUNG
       
 17577 0xB7	0x0E17	# THAI CHARACTER THO THAHAN
       
 17578 0xB8	0x0E18	# THAI CHARACTER THO THONG
       
 17579 0xB9	0x0E19	# THAI CHARACTER NO NU
       
 17580 0xBA	0x0E1A	# THAI CHARACTER BO BAIMAI
       
 17581 0xBB	0x0E1B	# THAI CHARACTER PO PLA
       
 17582 0xBC	0x0E1C	# THAI CHARACTER PHO PHUNG
       
 17583 0xBD	0x0E1D	# THAI CHARACTER FO FA
       
 17584 0xBE	0x0E1E	# THAI CHARACTER PHO PHAN
       
 17585 0xBF	0x0E1F	# THAI CHARACTER FO FAN
       
 17586 0xC0	0x0E20	# THAI CHARACTER PHO SAMPHAO
       
 17587 0xC1	0x0E21	# THAI CHARACTER MO MA
       
 17588 0xC2	0x0E22	# THAI CHARACTER YO YAK
       
 17589 0xC3	0x0E23	# THAI CHARACTER RO RUA
       
 17590 0xC4	0x0E24	# THAI CHARACTER RU
       
 17591 0xC5	0x0E25	# THAI CHARACTER LO LING
       
 17592 0xC6	0x0E26	# THAI CHARACTER LU
       
 17593 0xC7	0x0E27	# THAI CHARACTER WO WAEN
       
 17594 0xC8	0x0E28	# THAI CHARACTER SO SALA
       
 17595 0xC9	0x0E29	# THAI CHARACTER SO RUSI
       
 17596 0xCA	0x0E2A	# THAI CHARACTER SO SUA
       
 17597 0xCB	0x0E2B	# THAI CHARACTER HO HIP
       
 17598 0xCC	0x0E2C	# THAI CHARACTER LO CHULA
       
 17599 0xCD	0x0E2D	# THAI CHARACTER O ANG
       
 17600 0xCE	0x0E2E	# THAI CHARACTER HO NOKHUK
       
 17601 0xCF	0x0E2F	# THAI CHARACTER PAIYANNOI
       
 17602 0xD0	0x0E30	# THAI CHARACTER SARA A
       
 17603 0xD1	0x0E31	# THAI CHARACTER MAI HAN-AKAT
       
 17604 0xD2	0x0E32	# THAI CHARACTER SARA AA
       
 17605 0xD3	0x0E33	# THAI CHARACTER SARA AM
       
 17606 0xD4	0x0E34	# THAI CHARACTER SARA I
       
 17607 0xD5	0x0E35	# THAI CHARACTER SARA II
       
 17608 0xD6	0x0E36	# THAI CHARACTER SARA UE
       
 17609 0xD7	0x0E37	# THAI CHARACTER SARA UEE
       
 17610 0xD8	0x0E38	# THAI CHARACTER SARA U
       
 17611 0xD9	0x0E39	# THAI CHARACTER SARA UU
       
 17612 0xDA	0x0E3A	# THAI CHARACTER PHINTHU
       
 17613 0xDB	0x2060	# WORD JOINER # for Unicode 3.2 and later
       
 17614 0xDC	0x200B	# ZERO WIDTH SPACE
       
 17615 0xDD	0x2013	# EN DASH
       
 17616 0xDE	0x2014	# EM DASH
       
 17617 0xDF	0x0E3F	# THAI CURRENCY SYMBOL BAHT
       
 17618 0xE0	0x0E40	# THAI CHARACTER SARA E
       
 17619 0xE1	0x0E41	# THAI CHARACTER SARA AE
       
 17620 0xE2	0x0E42	# THAI CHARACTER SARA O
       
 17621 0xE3	0x0E43	# THAI CHARACTER SARA AI MAIMUAN
       
 17622 0xE4	0x0E44	# THAI CHARACTER SARA AI MAIMALAI
       
 17623 0xE5	0x0E45	# THAI CHARACTER LAKKHANGYAO
       
 17624 0xE6	0x0E46	# THAI CHARACTER MAIYAMOK
       
 17625 0xE7	0x0E47	# THAI CHARACTER MAITAIKHU
       
 17626 0xE8	0x0E48	# THAI CHARACTER MAI EK
       
 17627 0xE9	0x0E49	# THAI CHARACTER MAI THO
       
 17628 0xEA	0x0E4A	# THAI CHARACTER MAI TRI
       
 17629 0xEB	0x0E4B	# THAI CHARACTER MAI CHATTAWA
       
 17630 0xEC	0x0E4C	# THAI CHARACTER THANTHAKHAT
       
 17631 0xED	0x0E4D	# THAI CHARACTER NIKHAHIT
       
 17632 0xEE	0x2122	# TRADE MARK SIGN
       
 17633 0xEF	0x0E4F	# THAI CHARACTER FONGMAN
       
 17634 0xF0	0x0E50	# THAI DIGIT ZERO
       
 17635 0xF1	0x0E51	# THAI DIGIT ONE
       
 17636 0xF2	0x0E52	# THAI DIGIT TWO
       
 17637 0xF3	0x0E53	# THAI DIGIT THREE
       
 17638 0xF4	0x0E54	# THAI DIGIT FOUR
       
 17639 0xF5	0x0E55	# THAI DIGIT FIVE
       
 17640 0xF6	0x0E56	# THAI DIGIT SIX
       
 17641 0xF7	0x0E57	# THAI DIGIT SEVEN
       
 17642 0xF8	0x0E58	# THAI DIGIT EIGHT
       
 17643 0xF9	0x0E59	# THAI DIGIT NINE
       
 17644 0xFA	0x00AE	# REGISTERED SIGN
       
 17645 0xFB	0x00A9	# COPYRIGHT SIGN
       
 17646 
       
 17647 "
       
 17648 !
       
 17649 
 18145 mappingURL1_relativePathName
 17650 mappingURL1_relativePathName
 18146     ^ 'VENDORS/APPLE/THAI.TXT'
 17651     ^ 'VENDORS/APPLE/THAI.TXT'
 18147 ! !
 17652 ! !
 18148 
 17653 
 18149 !CharacterEncoder::MAC_Turkish class methodsFor:'mapping'!
 17654 !CharacterEncoder::MAC_Turkish class methodsFor:'mapping'!
 18495     ^ 'VENDORS/APPLE/TURKISH.TXT'
 18000     ^ 'VENDORS/APPLE/TURKISH.TXT'
 18496 ! !
 18001 ! !
 18497 
 18002 
 18498 !CharacterEncoder::MS_Ansi class methodsFor:'mapping'!
 18003 !CharacterEncoder::MS_Ansi class methodsFor:'mapping'!
 18499 
 18004 
       
 18005 mapping
       
 18006 "
       
 18007 # From: http://std.dkuug.dk/i18n/charmaps/CP1252
       
 18008 
       
 18009 <code_set_name> CP1252
       
 18010 <comment_char> %
       
 18011 <escape_char> /
       
 18012 % version: 1.0
       
 18013 % repertoiremap: mnemonic,ds
       
 18014 %  source: UNICODE 1.0
       
 18015 
       
 18016 % alias MS-ANSI
       
 18017 CHARMAP
       
 18018 <NU>                   /x00   <U0000> NULL (NUL)
       
 18019 <SH>                   /x01   <U0001> START OF HEADING (SOH)
       
 18020 <SX>                   /x02   <U0002> START OF TEXT (STX)
       
 18021 <EX>                   /x03   <U0003> END OF TEXT (ETX)
       
 18022 <ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
       
 18023 <EQ>                   /x05   <U0005> ENQUIRY (ENQ)
       
 18024 <AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
       
 18025 <BL>                   /x07   <U0007> BELL (BEL)
       
 18026 <BS>                   /x08   <U0008> BACKSPACE (BS)
       
 18027 <HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
       
 18028 <LF>                   /x0A   <U000A> LINE FEED (LF)
       
 18029 <VT>                   /x0B   <U000B> LINE TABULATION (VT)
       
 18030 <FF>                   /x0C   <U000C> FORM FEED (FF)
       
 18031 <CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
       
 18032 <SO>                   /x0E   <U000E> SHIFT OUT (SO)
       
 18033 <SI>                   /x0F   <U000F> SHIFT IN (SI)
       
 18034 <DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
       
 18035 <D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
       
 18036 <D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
       
 18037 <D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
       
 18038 <D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
       
 18039 <NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
       
 18040 <SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
       
 18041 <EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
       
 18042 <CN>                   /x18   <U0018> CANCEL (CAN)
       
 18043 <EM>                   /x19   <U0019> END OF MEDIUM (EM)
       
 18044 <SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
       
 18045 <EC>                   /x1B   <U001B> ESCAPE (ESC)
       
 18046 <FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
       
 18047 <GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 18048 <RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
       
 18049 <US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
       
 18050 <SP>                   /x20   <U0020> SPACE
       
 18051 <!!>                    /x21   <U0021> EXCLAMATION MARK
       
 18052 <'>                    /x22   <U0022> QUOTATION MARK
       
 18053 <Nb>                   /x23   <U0023> NUMBER SIGN
       
 18054 <DO>                   /x24   <U0024> DOLLAR SIGN
       
 18055 <%>                    /x25   <U0025> PERCENT SIGN
       
 18056 <&>                    /x26   <U0026> AMPERSAND
       
 18057 <'>                    /x27   <U0027> APOSTROPHE
       
 18058 <(>                    /x28   <U0028> LEFT PARENTHESIS
       
 18059 <)>                    /x29   <U0029> RIGHT PARENTHESIS
       
 18060 <*>                    /x2A   <U002A> ASTERISK
       
 18061 <+>                    /x2B   <U002B> PLUS SIGN
       
 18062 <,>                    /x2C   <U002C> COMMA
       
 18063 <->                    /x2D   <U002D> HYPHEN-MINUS
       
 18064 <.>                    /x2E   <U002E> FULL STOP
       
 18065 <//>                   /x2F   <U002F> SOLIDUS
       
 18066 <0>                    /x30   <U0030> DIGIT ZERO
       
 18067 <1>                    /x31   <U0031> DIGIT ONE
       
 18068 <2>                    /x32   <U0032> DIGIT TWO
       
 18069 <3>                    /x33   <U0033> DIGIT THREE
       
 18070 <4>                    /x34   <U0034> DIGIT FOUR
       
 18071 <5>                    /x35   <U0035> DIGIT FIVE
       
 18072 <6>                    /x36   <U0036> DIGIT SIX
       
 18073 <7>                    /x37   <U0037> DIGIT SEVEN
       
 18074 <8>                    /x38   <U0038> DIGIT EIGHT
       
 18075 <9>                    /x39   <U0039> DIGIT NINE
       
 18076 <:>                    /x3A   <U003A> COLON
       
 18077 <;>                    /x3B   <U003B> SEMICOLON
       
 18078 <<>                    /x3C   <U003C> LESS-THAN SIGN
       
 18079 <=>                    /x3D   <U003D> EQUALS SIGN
       
 18080 </>>                   /x3E   <U003E> GREATER-THAN SIGN
       
 18081 <?>                    /x3F   <U003F> QUESTION MARK
       
 18082 <At>                   /x40   <U0040> COMMERCIAL AT
       
 18083 <A>                    /x41   <U0041> LATIN CAPITAL LETTER A
       
 18084 <B>                    /x42   <U0042> LATIN CAPITAL LETTER B
       
 18085 <C>                    /x43   <U0043> LATIN CAPITAL LETTER C
       
 18086 <D>                    /x44   <U0044> LATIN CAPITAL LETTER D
       
 18087 <E>                    /x45   <U0045> LATIN CAPITAL LETTER E
       
 18088 <F>                    /x46   <U0046> LATIN CAPITAL LETTER F
       
 18089 <G>                    /x47   <U0047> LATIN CAPITAL LETTER G
       
 18090 <H>                    /x48   <U0048> LATIN CAPITAL LETTER H
       
 18091 <I>                    /x49   <U0049> LATIN CAPITAL LETTER I
       
 18092 <J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
       
 18093 <K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
       
 18094 <L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
       
 18095 <M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
       
 18096 <N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
       
 18097 <O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
       
 18098 <P>                    /x50   <U0050> LATIN CAPITAL LETTER P
       
 18099 <Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
       
 18100 <R>                    /x52   <U0052> LATIN CAPITAL LETTER R
       
 18101 <S>                    /x53   <U0053> LATIN CAPITAL LETTER S
       
 18102 <T>                    /x54   <U0054> LATIN CAPITAL LETTER T
       
 18103 <U>                    /x55   <U0055> LATIN CAPITAL LETTER U
       
 18104 <V>                    /x56   <U0056> LATIN CAPITAL LETTER V
       
 18105 <W>                    /x57   <U0057> LATIN CAPITAL LETTER W
       
 18106 <X>                    /x58   <U0058> LATIN CAPITAL LETTER X
       
 18107 <Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
       
 18108 <Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
       
 18109 <<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
       
 18110 <////>                 /x5C   <U005C> REVERSE SOLIDUS
       
 18111 <)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
       
 18112 <'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
       
 18113 <_>                    /x5F   <U005F> LOW LINE
       
 18114 <'!!>                   /x60   <U0060> GRAVE ACCENT
       
 18115 <a>                    /x61   <U0061> LATIN SMALL LETTER A
       
 18116 <b>                    /x62   <U0062> LATIN SMALL LETTER B
       
 18117 <c>                    /x63   <U0063> LATIN SMALL LETTER C
       
 18118 <d>                    /x64   <U0064> LATIN SMALL LETTER D
       
 18119 <e>                    /x65   <U0065> LATIN SMALL LETTER E
       
 18120 <f>                    /x66   <U0066> LATIN SMALL LETTER F
       
 18121 <g>                    /x67   <U0067> LATIN SMALL LETTER G
       
 18122 <h>                    /x68   <U0068> LATIN SMALL LETTER H
       
 18123 <i>                    /x69   <U0069> LATIN SMALL LETTER I
       
 18124 <j>                    /x6A   <U006A> LATIN SMALL LETTER J
       
 18125 <k>                    /x6B   <U006B> LATIN SMALL LETTER K
       
 18126 <l>                    /x6C   <U006C> LATIN SMALL LETTER L
       
 18127 <m>                    /x6D   <U006D> LATIN SMALL LETTER M
       
 18128 <n>                    /x6E   <U006E> LATIN SMALL LETTER N
       
 18129 <o>                    /x6F   <U006F> LATIN SMALL LETTER O
       
 18130 <p>                    /x70   <U0070> LATIN SMALL LETTER P
       
 18131 <q>                    /x71   <U0071> LATIN SMALL LETTER Q
       
 18132 <r>                    /x72   <U0072> LATIN SMALL LETTER R
       
 18133 <s>                    /x73   <U0073> LATIN SMALL LETTER S
       
 18134 <t>                    /x74   <U0074> LATIN SMALL LETTER T
       
 18135 <u>                    /x75   <U0075> LATIN SMALL LETTER U
       
 18136 <v>                    /x76   <U0076> LATIN SMALL LETTER V
       
 18137 <w>                    /x77   <U0077> LATIN SMALL LETTER W
       
 18138 <x>                    /x78   <U0078> LATIN SMALL LETTER X
       
 18139 <y>                    /x79   <U0079> LATIN SMALL LETTER Y
       
 18140 <z>                    /x7A   <U007A> LATIN SMALL LETTER Z
       
 18141 <(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
       
 18142 <!!!!>                   /x7C   <U007C> VERTICAL LINE
       
 18143 <!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
       
 18144 <'?>                   /x7E   <U007E> TILDE
       
 18145 <DT>                   /x7F   <U007F> DELETE (DEL)
       
 18146 <.9>                   /x82   <U201A> SINGLE LOW-9 QUOTATION MARK
       
 18147 <f2>                   /x83   <U0192> LATIN SMALL LETTER F WITH HOOK
       
 18148 <:9>                   /x84   <U201E> DOUBLE LOW-9 QUOTATION MARK
       
 18149 <.3>                   /x85   <U2026> HORIZONTAL ELLIPSIS
       
 18150 <//->                  /x86   <U2020> DAGGER
       
 18151 <//=>                  /x87   <U2021> DOUBLE DAGGER
       
 18152 <1/>>                  /x88   <U02C6> MODIFIER LETTER CIRCUMFLEX ACCENT
       
 18153 <%0>                   /x89   <U2030> PER MILLE SIGN
       
 18154 <S<>                   /x8A   <U0160> LATIN CAPITAL LETTER S WITH CARON
       
 18155 <<1>                   /x8B   <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
       
 18156 <OE>                   /x8C   <U0152> LATIN CAPITAL LIGATURE OE
       
 18157 <'6>                   /x91   <U2018> LEFT SINGLE QUOTATION MARK
       
 18158 <'9>                   /x92   <U2019> RIGHT SINGLE QUOTATION MARK
       
 18159 <'6>                   /x93   <U201C> LEFT DOUBLE QUOTATION MARK
       
 18160 <'9>                   /x94   <U201D> RIGHT DOUBLE QUOTATION MARK
       
 18161 <sb>                   /x95   <U2022> BULLET
       
 18162 <-N>                   /x96   <U2013> EN DASH
       
 18163 <-M>                   /x97   <U2014> EM DASH
       
 18164 <1?>                   /x98   <U02DC> SMALL TILDE
       
 18165 <TM>                   /x99   <U2122> TRADE MARK SIGN
       
 18166 <s<>                   /x9A   <U0161> LATIN SMALL LETTER S WITH CARON
       
 18167 </>1>                  /x9B   <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
       
 18168 <oe>                   /x9C   <U0153> LATIN SMALL LIGATURE OE
       
 18169 <Y:>                   /x9F   <U0178> LATIN CAPITAL LETTER Y WITH DIAERESIS
       
 18170 <NS>                   /xA0   <U00A0> NO-BREAK SPACE
       
 18171 <!!I>                   /xA1   <U00A1> INVERTED EXCLAMATION MARK
       
 18172 <Ct>                   /xA2   <U00A2> CENT SIGN
       
 18173 <Pd>                   /xA3   <U00A3> POUND SIGN
       
 18174 <Cu>                   /xA4   <U00A4> CURRENCY SIGN
       
 18175 <Ye>                   /xA5   <U00A5> YEN SIGN
       
 18176 <BB>                   /xA6   <U00A6> BROKEN BAR
       
 18177 <SE>                   /xA7   <U00A7> SECTION SIGN
       
 18178 <':>                   /xA8   <U00A8> DIAERESIS
       
 18179 <Co>                   /xA9   <U00A9> COPYRIGHT SIGN
       
 18180 <-a>                   /xAA   <U00AA> FEMININE ORDINAL INDICATOR
       
 18181 <<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 18182 <NO>                   /xAC   <U00AC> NOT SIGN
       
 18183 <-->                   /xAD   <U00AD> SOFT HYPHEN
       
 18184 <Rg>                   /xAE   <U00AE> REGISTERED SIGN
       
 18185 <'m>                   /xAF   <U00AF> MACRON
       
 18186 <DG>                   /xB0   <U00B0> DEGREE SIGN
       
 18187 <+->                   /xB1   <U00B1> PLUS-MINUS SIGN
       
 18188 <2S>                   /xB2   <U00B2> SUPERSCRIPT TWO
       
 18189 <3S>                   /xB3   <U00B3> SUPERSCRIPT THREE
       
 18190 <''>                   /xB4   <U00B4> ACUTE ACCENT
       
 18191 <My>                   /xB5   <U00B5> MICRO SIGN
       
 18192 <PI>                   /xB6   <U00B6> PILCROW SIGN
       
 18193 <.M>                   /xB7   <U00B7> MIDDLE DOT
       
 18194 <',>                   /xB8   <U00B8> CEDILLA
       
 18195 <1S>                   /xB9   <U00B9> SUPERSCRIPT ONE
       
 18196 <-o>                   /xBA   <U00BA> MASCULINE ORDINAL INDICATOR
       
 18197 </>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 18198 <14>                   /xBC   <U00BC> VULGAR FRACTION ONE QUARTER
       
 18199 <12>                   /xBD   <U00BD> VULGAR FRACTION ONE HALF
       
 18200 <34>                   /xBE   <U00BE> VULGAR FRACTION THREE QUARTERS
       
 18201 <?I>                   /xBF   <U00BF> INVERTED QUESTION MARK
       
 18202 <A!!>                   /xC0   <U00C0> LATIN CAPITAL LETTER A WITH GRAVE
       
 18203 <A'>                   /xC1   <U00C1> LATIN CAPITAL LETTER A WITH ACUTE
       
 18204 <A/>>                  /xC2   <U00C2> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
       
 18205 <A?>                   /xC3   <U00C3> LATIN CAPITAL LETTER A WITH TILDE
       
 18206 <A:>                   /xC4   <U00C4> LATIN CAPITAL LETTER A WITH DIAERESIS
       
 18207 <AA>                   /xC5   <U00C5> LATIN CAPITAL LETTER A WITH RING ABOVE
       
 18208 <AE>                   /xC6   <U00C6> LATIN CAPITAL LETTER AE
       
 18209 <C,>                   /xC7   <U00C7> LATIN CAPITAL LETTER C WITH CEDILLA
       
 18210 <E!!>                   /xC8   <U00C8> LATIN CAPITAL LETTER E WITH GRAVE
       
 18211 <E'>                   /xC9   <U00C9> LATIN CAPITAL LETTER E WITH ACUTE
       
 18212 <E/>>                  /xCA   <U00CA> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
       
 18213 <E:>                   /xCB   <U00CB> LATIN CAPITAL LETTER E WITH DIAERESIS
       
 18214 <I!!>                   /xCC   <U00CC> LATIN CAPITAL LETTER I WITH GRAVE
       
 18215 <I'>                   /xCD   <U00CD> LATIN CAPITAL LETTER I WITH ACUTE
       
 18216 <I/>>                  /xCE   <U00CE> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
       
 18217 <I:>                   /xCF   <U00CF> LATIN CAPITAL LETTER I WITH DIAERESIS
       
 18218 <D->                   /xD0   <U00D0> LATIN CAPITAL LETTER ETH (Icelandic)
       
 18219 <N?>                   /xD1   <U00D1> LATIN CAPITAL LETTER N WITH TILDE
       
 18220 <O!!>                   /xD2   <U00D2> LATIN CAPITAL LETTER O WITH GRAVE
       
 18221 <O'>                   /xD3   <U00D3> LATIN CAPITAL LETTER O WITH ACUTE
       
 18222 <O/>>                  /xD4   <U00D4> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
       
 18223 <O?>                   /xD5   <U00D5> LATIN CAPITAL LETTER O WITH TILDE
       
 18224 <O:>                   /xD6   <U00D6> LATIN CAPITAL LETTER O WITH DIAERESIS
       
 18225 <*X>                   /xD7   <U00D7> MULTIPLICATION SIGN
       
 18226 <O//>                  /xD8   <U00D8> LATIN CAPITAL LETTER O WITH STROKE
       
 18227 <U!!>                   /xD9   <U00D9> LATIN CAPITAL LETTER U WITH GRAVE
       
 18228 <U'>                   /xDA   <U00DA> LATIN CAPITAL LETTER U WITH ACUTE
       
 18229 <U/>>                  /xDB   <U00DB> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
       
 18230 <U:>                   /xDC   <U00DC> LATIN CAPITAL LETTER U WITH DIAERESIS
       
 18231 <Y'>                   /xDD   <U00DD> LATIN CAPITAL LETTER Y WITH ACUTE
       
 18232 <TH>                   /xDE   <U00DE> LATIN CAPITAL LETTER THORN (Icelandic)
       
 18233 <ss>                   /xDF   <U00DF> LATIN SMALL LETTER SHARP S (German)
       
 18234 <a!!>                   /xE0   <U00E0> LATIN SMALL LETTER A WITH GRAVE
       
 18235 <a'>                   /xE1   <U00E1> LATIN SMALL LETTER A WITH ACUTE
       
 18236 <a/>>                  /xE2   <U00E2> LATIN SMALL LETTER A WITH CIRCUMFLEX
       
 18237 <a?>                   /xE3   <U00E3> LATIN SMALL LETTER A WITH TILDE
       
 18238 <a:>                   /xE4   <U00E4> LATIN SMALL LETTER A WITH DIAERESIS
       
 18239 <aa>                   /xE5   <U00E5> LATIN SMALL LETTER A WITH RING ABOVE
       
 18240 <ae>                   /xE6   <U00E6> LATIN SMALL LETTER AE
       
 18241 <c,>                   /xE7   <U00E7> LATIN SMALL LETTER C WITH CEDILLA
       
 18242 <e!!>                   /xE8   <U00E8> LATIN SMALL LETTER E WITH GRAVE
       
 18243 <e'>                   /xE9   <U00E9> LATIN SMALL LETTER E WITH ACUTE
       
 18244 <e/>>                  /xEA   <U00EA> LATIN SMALL LETTER E WITH CIRCUMFLEX
       
 18245 <e:>                   /xEB   <U00EB> LATIN SMALL LETTER E WITH DIAERESIS
       
 18246 <i!!>                   /xEC   <U00EC> LATIN SMALL LETTER I WITH GRAVE
       
 18247 <i'>                   /xED   <U00ED> LATIN SMALL LETTER I WITH ACUTE
       
 18248 <i/>>                  /xEE   <U00EE> LATIN SMALL LETTER I WITH CIRCUMFLEX
       
 18249 <i:>                   /xEF   <U00EF> LATIN SMALL LETTER I WITH DIAERESIS
       
 18250 <d->                   /xF0   <U00F0> LATIN SMALL LETTER ETH (Icelandic)
       
 18251 <n?>                   /xF1   <U00F1> LATIN SMALL LETTER N WITH TILDE
       
 18252 <o!!>                   /xF2   <U00F2> LATIN SMALL LETTER O WITH GRAVE
       
 18253 <o'>                   /xF3   <U00F3> LATIN SMALL LETTER O WITH ACUTE
       
 18254 <o/>>                  /xF4   <U00F4> LATIN SMALL LETTER O WITH CIRCUMFLEX
       
 18255 <o?>                   /xF5   <U00F5> LATIN SMALL LETTER O WITH TILDE
       
 18256 <o:>                   /xF6   <U00F6> LATIN SMALL LETTER O WITH DIAERESIS
       
 18257 <-:>                   /xF7   <U00F7> DIVISION SIGN
       
 18258 <o//>                  /xF8   <U00F8> LATIN SMALL LETTER O WITH STROKE
       
 18259 <u!!>                   /xF9   <U00F9> LATIN SMALL LETTER U WITH GRAVE
       
 18260 <u'>                   /xFA   <U00FA> LATIN SMALL LETTER U WITH ACUTE
       
 18261 <u/>>                  /xFB   <U00FB> LATIN SMALL LETTER U WITH CIRCUMFLEX
       
 18262 <u:>                   /xFC   <U00FC> LATIN SMALL LETTER U WITH DIAERESIS
       
 18263 <y'>                   /xFD   <U00FD> LATIN SMALL LETTER Y WITH ACUTE
       
 18264 <th>                   /xFE   <U00FE> LATIN SMALL LETTER THORN (Icelandic)
       
 18265 <y:>                   /xFF   <U00FF> LATIN SMALL LETTER Y WITH DIAERESIS
       
 18266 <NUL>                  /x00   <U0000> NUL
       
 18267 <SOH>                  /x01   <U0001> START OF HEADING (SOH)
       
 18268 <STX>                  /x02   <U0002> START OF TEXT (STX)
       
 18269 <ETX>                  /x03   <U0003> END OF TEXT (ETX)
       
 18270 <EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
       
 18271 <ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
       
 18272 <ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
       
 18273 <alert>                /x07   <U0007> BELL (BEL)
       
 18274 <BEL>                  /x07   <U0007> BELL (BEL)
       
 18275 <backspace>            /x08   <U0008> BACKSPACE (BS)
       
 18276 <tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
       
 18277 <newline>              /x0A   <U000A> LINE FEED (LF)
       
 18278 <vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
       
 18279 <form-feed>            /x0C   <U000C> FORM FEED (FF)
       
 18280 <carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
       
 18281 <DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
       
 18282 <DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
       
 18283 <DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
       
 18284 <DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
       
 18285 <DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
       
 18286 <NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
       
 18287 <SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
       
 18288 <ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
       
 18289 <CAN>                  /x18   <U0018> CANCEL (CAN)
       
 18290 <SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
       
 18291 <ESC>                  /x1B   <U001B> ESCAPE (ESC)
       
 18292 <IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
       
 18293 <IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 18294 <intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 18295 <IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
       
 18296 <IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
       
 18297 <DEL>                  /x7F   <U007F> DELETE (DEL)
       
 18298 <space>                /x20   <U0020> SPACE
       
 18299 <exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
       
 18300 <quotation-mark>       /x22   <U0022> QUOTATION MARK
       
 18301 <number-sign>          /x23   <U0023> NUMBER SIGN
       
 18302 <dollar-sign>          /x24   <U0024> DOLLAR SIGN
       
 18303 <percent-sign>         /x25   <U0025> PERCENT SIGN
       
 18304 <ampersand>            /x26   <U0026> AMPERSAND
       
 18305 <apostrophe>           /x27   <U0027> APOSTROPHE
       
 18306 <left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
       
 18307 <right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
       
 18308 <asterisk>             /x2A   <U002A> ASTERISK
       
 18309 <plus-sign>            /x2B   <U002B> PLUS SIGN
       
 18310 <comma>                /x2C   <U002C> COMMA
       
 18311 <hyphen>               /x2D   <U002D> HYPHEN-MINUS
       
 18312 <hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
       
 18313 <period>               /x2E   <U002E> FULL STOP
       
 18314 <full-stop>            /x2E   <U002E> FULL STOP
       
 18315 <slash>                /x2F   <U002F> SOLIDUS
       
 18316 <solidus>              /x2F   <U002F> SOLIDUS
       
 18317 <zero>                 /x30   <U0030> DIGIT ZERO
       
 18318 <one>                  /x31   <U0031> DIGIT ONE
       
 18319 <two>                  /x32   <U0032> DIGIT TWO
       
 18320 <three>                /x33   <U0033> DIGIT THREE
       
 18321 <four>                 /x34   <U0034> DIGIT FOUR
       
 18322 <five>                 /x35   <U0035> DIGIT FIVE
       
 18323 <six>                  /x36   <U0036> DIGIT SIX
       
 18324 <seven>                /x37   <U0037> DIGIT SEVEN
       
 18325 <eight>                /x38   <U0038> DIGIT EIGHT
       
 18326 <nine>                 /x39   <U0039> DIGIT NINE
       
 18327 <colon>                /x3A   <U003A> COLON
       
 18328 <semicolon>            /x3B   <U003B> SEMICOLON
       
 18329 <less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
       
 18330 <equals-sign>          /x3D   <U003D> EQUALS SIGN
       
 18331 <greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
       
 18332 <question-mark>        /x3F   <U003F> QUESTION MARK
       
 18333 <commercial-at>        /x40   <U0040> COMMERCIAL AT
       
 18334 <left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
       
 18335 <backslash>            /x5C   <U005C> REVERSE SOLIDUS
       
 18336 <reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
       
 18337 <right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
       
 18338 <circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
       
 18339 <circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
       
 18340 <underscore>           /x5F   <U005F> LOW LINE
       
 18341 <low-line>             /x5F   <U005F> LOW LINE
       
 18342 <grave-accent>         /x60   <U0060> GRAVE ACCENT
       
 18343 <left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
       
 18344 <left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
       
 18345 <vertical-line>        /x7C   <U007C> VERTICAL LINE
       
 18346 <right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
       
 18347 <right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
       
 18348 <tilde>                /x7E   <U007E> TILDE
       
 18349 END CHARMAP
       
 18350 
       
 18351 "
       
 18352 !
       
 18353 
 18500 mappingURL2_relativePathName
 18354 mappingURL2_relativePathName
 18501     ^ 'CP1252'
 18355     ^ 'CP1252'
 18502 ! !
 18356 ! !
 18503 
 18357 
 18504 !CharacterEncoder::MS_Ansi class methodsFor:'queries'!
 18358 !CharacterEncoder::MS_Ansi class methodsFor:'queries'!
 18507     ^ #( 'ms-ansi' 'ms-cp1252' 'cp1252' )
 18361     ^ #( 'ms-ansi' 'ms-cp1252' 'cp1252' )
 18508 ! !
 18362 ! !
 18509 
 18363 
 18510 !CharacterEncoder::MS_Arabic class methodsFor:'mapping'!
 18364 !CharacterEncoder::MS_Arabic class methodsFor:'mapping'!
 18511 
 18365 
       
 18366 mapping
       
 18367 "
       
 18368 # From: http://std.dkuug.dk/i18n/charmaps/CP1256
       
 18369 
       
 18370 <code_set_name> CP1256
       
 18371 <comment_char> %
       
 18372 <escape_char> /
       
 18373 % version: 1.0
       
 18374 % repertoiremap: mnemonic,ds
       
 18375 %  source: UNICODE 1.0
       
 18376 
       
 18377 % alias MS-ARAB
       
 18378 CHARMAP
       
 18379 <NU>                   /x00   <U0000> NULL (NUL)
       
 18380 <SH>                   /x01   <U0001> START OF HEADING (SOH)
       
 18381 <SX>                   /x02   <U0002> START OF TEXT (STX)
       
 18382 <EX>                   /x03   <U0003> END OF TEXT (ETX)
       
 18383 <ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
       
 18384 <EQ>                   /x05   <U0005> ENQUIRY (ENQ)
       
 18385 <AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
       
 18386 <BL>                   /x07   <U0007> BELL (BEL)
       
 18387 <BS>                   /x08   <U0008> BACKSPACE (BS)
       
 18388 <HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
       
 18389 <LF>                   /x0A   <U000A> LINE FEED (LF)
       
 18390 <VT>                   /x0B   <U000B> LINE TABULATION (VT)
       
 18391 <FF>                   /x0C   <U000C> FORM FEED (FF)
       
 18392 <CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
       
 18393 <SO>                   /x0E   <U000E> SHIFT OUT (SO)
       
 18394 <SI>                   /x0F   <U000F> SHIFT IN (SI)
       
 18395 <DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
       
 18396 <D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
       
 18397 <D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
       
 18398 <D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
       
 18399 <D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
       
 18400 <NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
       
 18401 <SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
       
 18402 <EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
       
 18403 <CN>                   /x18   <U0018> CANCEL (CAN)
       
 18404 <EM>                   /x19   <U0019> END OF MEDIUM (EM)
       
 18405 <SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
       
 18406 <EC>                   /x1B   <U001B> ESCAPE (ESC)
       
 18407 <FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
       
 18408 <GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 18409 <RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
       
 18410 <US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
       
 18411 <SP>                   /x20   <U0020> SPACE
       
 18412 <!!>                    /x21   <U0021> EXCLAMATION MARK
       
 18413 <'>                    /x22   <U0022> QUOTATION MARK
       
 18414 <Nb>                   /x23   <U0023> NUMBER SIGN
       
 18415 <DO>                   /x24   <U0024> DOLLAR SIGN
       
 18416 <%>                    /x25   <U0025> PERCENT SIGN
       
 18417 <&>                    /x26   <U0026> AMPERSAND
       
 18418 <'>                    /x27   <U0027> APOSTROPHE
       
 18419 <(>                    /x28   <U0028> LEFT PARENTHESIS
       
 18420 <)>                    /x29   <U0029> RIGHT PARENTHESIS
       
 18421 <*>                    /x2A   <U002A> ASTERISK
       
 18422 <+>                    /x2B   <U002B> PLUS SIGN
       
 18423 <,>                    /x2C   <U002C> COMMA
       
 18424 <->                    /x2D   <U002D> HYPHEN-MINUS
       
 18425 <.>                    /x2E   <U002E> FULL STOP
       
 18426 <//>                   /x2F   <U002F> SOLIDUS
       
 18427 <0>                    /x30   <U0030> DIGIT ZERO
       
 18428 <1>                    /x31   <U0031> DIGIT ONE
       
 18429 <2>                    /x32   <U0032> DIGIT TWO
       
 18430 <3>                    /x33   <U0033> DIGIT THREE
       
 18431 <4>                    /x34   <U0034> DIGIT FOUR
       
 18432 <5>                    /x35   <U0035> DIGIT FIVE
       
 18433 <6>                    /x36   <U0036> DIGIT SIX
       
 18434 <7>                    /x37   <U0037> DIGIT SEVEN
       
 18435 <8>                    /x38   <U0038> DIGIT EIGHT
       
 18436 <9>                    /x39   <U0039> DIGIT NINE
       
 18437 <:>                    /x3A   <U003A> COLON
       
 18438 <;>                    /x3B   <U003B> SEMICOLON
       
 18439 <<>                    /x3C   <U003C> LESS-THAN SIGN
       
 18440 <=>                    /x3D   <U003D> EQUALS SIGN
       
 18441 </>>                   /x3E   <U003E> GREATER-THAN SIGN
       
 18442 <?>                    /x3F   <U003F> QUESTION MARK
       
 18443 <At>                   /x40   <U0040> COMMERCIAL AT
       
 18444 <A>                    /x41   <U0041> LATIN CAPITAL LETTER A
       
 18445 <B>                    /x42   <U0042> LATIN CAPITAL LETTER B
       
 18446 <C>                    /x43   <U0043> LATIN CAPITAL LETTER C
       
 18447 <D>                    /x44   <U0044> LATIN CAPITAL LETTER D
       
 18448 <E>                    /x45   <U0045> LATIN CAPITAL LETTER E
       
 18449 <F>                    /x46   <U0046> LATIN CAPITAL LETTER F
       
 18450 <G>                    /x47   <U0047> LATIN CAPITAL LETTER G
       
 18451 <H>                    /x48   <U0048> LATIN CAPITAL LETTER H
       
 18452 <I>                    /x49   <U0049> LATIN CAPITAL LETTER I
       
 18453 <J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
       
 18454 <K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
       
 18455 <L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
       
 18456 <M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
       
 18457 <N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
       
 18458 <O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
       
 18459 <P>                    /x50   <U0050> LATIN CAPITAL LETTER P
       
 18460 <Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
       
 18461 <R>                    /x52   <U0052> LATIN CAPITAL LETTER R
       
 18462 <S>                    /x53   <U0053> LATIN CAPITAL LETTER S
       
 18463 <T>                    /x54   <U0054> LATIN CAPITAL LETTER T
       
 18464 <U>                    /x55   <U0055> LATIN CAPITAL LETTER U
       
 18465 <V>                    /x56   <U0056> LATIN CAPITAL LETTER V
       
 18466 <W>                    /x57   <U0057> LATIN CAPITAL LETTER W
       
 18467 <X>                    /x58   <U0058> LATIN CAPITAL LETTER X
       
 18468 <Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
       
 18469 <Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
       
 18470 <<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
       
 18471 <////>                 /x5C   <U005C> REVERSE SOLIDUS
       
 18472 <)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
       
 18473 <'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
       
 18474 <_>                    /x5F   <U005F> LOW LINE
       
 18475 <'!!>                   /x60   <U0060> GRAVE ACCENT
       
 18476 <a>                    /x61   <U0061> LATIN SMALL LETTER A
       
 18477 <b>                    /x62   <U0062> LATIN SMALL LETTER B
       
 18478 <c>                    /x63   <U0063> LATIN SMALL LETTER C
       
 18479 <d>                    /x64   <U0064> LATIN SMALL LETTER D
       
 18480 <e>                    /x65   <U0065> LATIN SMALL LETTER E
       
 18481 <f>                    /x66   <U0066> LATIN SMALL LETTER F
       
 18482 <g>                    /x67   <U0067> LATIN SMALL LETTER G
       
 18483 <h>                    /x68   <U0068> LATIN SMALL LETTER H
       
 18484 <i>                    /x69   <U0069> LATIN SMALL LETTER I
       
 18485 <j>                    /x6A   <U006A> LATIN SMALL LETTER J
       
 18486 <k>                    /x6B   <U006B> LATIN SMALL LETTER K
       
 18487 <l>                    /x6C   <U006C> LATIN SMALL LETTER L
       
 18488 <m>                    /x6D   <U006D> LATIN SMALL LETTER M
       
 18489 <n>                    /x6E   <U006E> LATIN SMALL LETTER N
       
 18490 <o>                    /x6F   <U006F> LATIN SMALL LETTER O
       
 18491 <p>                    /x70   <U0070> LATIN SMALL LETTER P
       
 18492 <q>                    /x71   <U0071> LATIN SMALL LETTER Q
       
 18493 <r>                    /x72   <U0072> LATIN SMALL LETTER R
       
 18494 <s>                    /x73   <U0073> LATIN SMALL LETTER S
       
 18495 <t>                    /x74   <U0074> LATIN SMALL LETTER T
       
 18496 <u>                    /x75   <U0075> LATIN SMALL LETTER U
       
 18497 <v>                    /x76   <U0076> LATIN SMALL LETTER V
       
 18498 <w>                    /x77   <U0077> LATIN SMALL LETTER W
       
 18499 <x>                    /x78   <U0078> LATIN SMALL LETTER X
       
 18500 <y>                    /x79   <U0079> LATIN SMALL LETTER Y
       
 18501 <z>                    /x7A   <U007A> LATIN SMALL LETTER Z
       
 18502 <(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
       
 18503 <!!!!>                   /x7C   <U007C> VERTICAL LINE
       
 18504 <!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
       
 18505 <'?>                   /x7E   <U007E> TILDE
       
 18506 <DT>                   /x7F   <U007F> DELETE (DEL)
       
 18507 <,+>                   /x80   <U060C> ARABIC COMMA
       
 18508 <0a>                   /x81   <U0660> ARABIC-INDIC DIGIT ZERO
       
 18509 <.9>                   /x82   <U201A> SINGLE LOW-9 QUOTATION MARK
       
 18510 <1a>                   /x83   <U0661> ARABIC-INDIC DIGIT ONE
       
 18511 <:9>                   /x84   <U201E> DOUBLE LOW-9 QUOTATION MARK
       
 18512 <.3>                   /x85   <U2026> HORIZONTAL ELLIPSIS
       
 18513 <//->                  /x86   <U2020> DAGGER
       
 18514 <//=>                  /x87   <U2021> DOUBLE DAGGER
       
 18515 <2a>                   /x88   <U0662> ARABIC-INDIC DIGIT TWO
       
 18516 <3a>                   /x89   <U0663> ARABIC-INDIC DIGIT THREE
       
 18517 <4a>                   /x8A   <U0664> ARABIC-INDIC DIGIT FOUR
       
 18518 <<1>                   /x8B   <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
       
 18519 <5a>                   /x8C   <U0665> ARABIC-INDIC DIGIT FIVE
       
 18520 <6a>                   /x8D   <U0666> ARABIC-INDIC DIGIT SIX
       
 18521 <7a>                   /x8E   <U0667> ARABIC-INDIC DIGIT SEVEN
       
 18522 <8a>                   /x8F   <U0668> ARABIC-INDIC DIGIT EIGHT
       
 18523 <9a>                   /x90   <U0669> ARABIC-INDIC DIGIT NINE
       
 18524 <'6>                   /x91   <U2018> LEFT SINGLE QUOTATION MARK
       
 18525 <'9>                   /x92   <U2019> RIGHT SINGLE QUOTATION MARK
       
 18526 <'6>                   /x93   <U201C> LEFT DOUBLE QUOTATION MARK
       
 18527 <'9>                   /x94   <U201D> RIGHT DOUBLE QUOTATION MARK
       
 18528 <sb>                   /x95   <U2022> BULLET
       
 18529 <-N>                   /x96   <U2013> EN DASH
       
 18530 <-M>                   /x97   <U2014> EM DASH
       
 18531 <;+>                   /x98   <U061B> ARABIC SEMICOLON
       
 18532 <TM>                   /x99   <U2122> TRADE MARK SIGN
       
 18533 <?+>                   /x9A   <U061F> ARABIC QUESTION MARK
       
 18534 </>1>                  /x9B   <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
       
 18535 <H'>                   /x9C   <U0621> ARABIC LETTER HAMZA
       
 18536 <aM>                   /x9D   <U0622> ARABIC LETTER ALEF WITH MADDA ABOVE
       
 18537 <aH>                   /x9E   <U0623> ARABIC LETTER ALEF WITH HAMZA ABOVE
       
 18538 <Y:>                   /x9F   <U0178> LATIN CAPITAL LETTER Y WITH DIAERESIS
       
 18539 <NS>                   /xA0   <U00A0> NO-BREAK SPACE
       
 18540 <wH>                   /xA1   <U0624> ARABIC LETTER WAW WITH HAMZA ABOVE
       
 18541 <ah>                   /xA2   <U0625> ARABIC LETTER ALEF WITH HAMZA BELOW
       
 18542 <Pd>                   /xA3   <U00A3> POUND SIGN
       
 18543 <Cu>                   /xA4   <U00A4> CURRENCY SIGN
       
 18544 <yH>                   /xA5   <U0626> ARABIC LETTER YEH WITH HAMZA ABOVE
       
 18545 <BB>                   /xA6   <U00A6> BROKEN BAR
       
 18546 <SE>                   /xA7   <U00A7> SECTION SIGN
       
 18547 <a+>                   /xA8   <U0627> ARABIC LETTER ALEF
       
 18548 <Co>                   /xA9   <U00A9> COPYRIGHT SIGN
       
 18549 <b+>                   /xAA   <U0628> ARABIC LETTER BEH
       
 18550 <<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 18551 <NO>                   /xAC   <U00AC> NOT SIGN
       
 18552 <-->                   /xAD   <U00AD> SOFT HYPHEN
       
 18553 <Rg>                   /xAE   <U00AE> REGISTERED SIGN
       
 18554 <p+>                   /xAF   <U067E> ARABIC LETTER PEH
       
 18555 <DG>                   /xB0   <U00B0> DEGREE SIGN
       
 18556 <+->                   /xB1   <U00B1> PLUS-MINUS SIGN
       
 18557 <tm>                   /xB2   <U0629> ARABIC LETTER TEH MARBUTA
       
 18558 <t+>                   /xB3   <U062A> ARABIC LETTER TEH
       
 18559 <tk>                   /xB4   <U062B> ARABIC LETTER THEH
       
 18560 <My>                   /xB5   <U00B5> MICRO SIGN
       
 18561 <PI>                   /xB6   <U00B6> PILCROW SIGN
       
 18562 <.M>                   /xB7   <U00B7> MIDDLE DOT
       
 18563 <g+>                   /xB8   <U062C> ARABIC LETTER JEEM
       
 18564 <tc>                   /xB9   <U0686> ARABIC LETTER TCHEH
       
 18565 <hk>                   /xBA   <U062D> ARABIC LETTER HAH
       
 18566 </>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 18567 <x+>                   /xBC   <U062E> ARABIC LETTER KHAH
       
 18568 <d+>                   /xBD   <U062F> ARABIC LETTER DAL
       
 18569 <dk>                   /xBE   <U0630> ARABIC LETTER THAL
       
 18570 <r+>                   /xBF   <U0631> ARABIC LETTER REH
       
 18571 <A!!>                   /xC0   <U00C0> LATIN CAPITAL LETTER A WITH GRAVE
       
 18572 <z+>                   /xC1   <U0632> ARABIC LETTER ZAIN
       
 18573 <A/>>                  /xC2   <U00C2> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
       
 18574 <zj>                   /xC3   <U0698> ARABIC LETTER JEH
       
 18575 <s+>                   /xC4   <U0633> ARABIC LETTER SEEN
       
 18576 <sn>                   /xC5   <U0634> ARABIC LETTER SHEEN
       
 18577 <c+>                   /xC6   <U0635> ARABIC LETTER SAD
       
 18578 <C,>                   /xC7   <U00C7> LATIN CAPITAL LETTER C WITH CEDILLA
       
 18579 <E!!>                   /xC8   <U00C8> LATIN CAPITAL LETTER E WITH GRAVE
       
 18580 <E'>                   /xC9   <U00C9> LATIN CAPITAL LETTER E WITH ACUTE
       
 18581 <E/>>                  /xCA   <U00CA> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
       
 18582 <E:>                   /xCB   <U00CB> LATIN CAPITAL LETTER E WITH DIAERESIS
       
 18583 <dd>                   /xCC   <U0636> ARABIC LETTER DAD
       
 18584 <tj>                   /xCD   <U0637> ARABIC LETTER TAH
       
 18585 <I/>>                  /xCE   <U00CE> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
       
 18586 <I:>                   /xCF   <U00CF> LATIN CAPITAL LETTER I WITH DIAERESIS
       
 18587 <zh>                   /xD0   <U3113> BOPOMOFO LETTER ZH
       
 18588 <e+>                   /xD1   <U0639> ARABIC LETTER AIN
       
 18589 <i+>                   /xD2   <U063A> ARABIC LETTER GHAIN
       
 18590 <++>                   /xD3   <U0640> ARABIC TATWEEL
       
 18591 <O/>>                  /xD4   <U00D4> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
       
 18592 <f+>                   /xD5   <U0641> ARABIC LETTER FEH
       
 18593 <q+>                   /xD6   <U0642> ARABIC LETTER QAF
       
 18594 <*X>                   /xD7   <U00D7> MULTIPLICATION SIGN
       
 18595 <k+>                   /xD8   <U0643> ARABIC LETTER KAF
       
 18596 <U!!>                   /xD9   <U00D9> LATIN CAPITAL LETTER U WITH GRAVE
       
 18597 <gf>                   /xDA   <U06AF> ARABIC LETTER GAF
       
 18598 <U/>>                  /xDB   <U00DB> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
       
 18599 <U:>                   /xDC   <U00DC> LATIN CAPITAL LETTER U WITH DIAERESIS
       
 18600 <l+>                   /xDD   <U0644> ARABIC LETTER LAM
       
 18601 <m+>                   /xDE   <U0645> ARABIC LETTER MEEM
       
 18602 <n+>                   /xDF   <U0646> ARABIC LETTER NOON
       
 18603 <a!!>                   /xE0   <U00E0> LATIN SMALL LETTER A WITH GRAVE
       
 18604 <h+>                   /xE1   <U0647> ARABIC LETTER HEH
       
 18605 <a/>>                  /xE2   <U00E2> LATIN SMALL LETTER A WITH CIRCUMFLEX
       
 18606 <hH>                   /xE3   <U0681> ARABIC LETTER HAH WITH HAMZA ABOVE
       
 18607 <w+>                   /xE4   <U0648> ARABIC LETTER WAW
       
 18608 <j+>                   /xE5   <U0649> ARABIC LETTER ALEF MAKSURA
       
 18609 <y+>                   /xE6   <U064A> ARABIC LETTER YEH
       
 18610 <c,>                   /xE7   <U00E7> LATIN SMALL LETTER C WITH CEDILLA
       
 18611 <e!!>                   /xE8   <U00E8> LATIN SMALL LETTER E WITH GRAVE
       
 18612 <e'>                   /xE9   <U00E9> LATIN SMALL LETTER E WITH ACUTE
       
 18613 <e/>>                  /xEA   <U00EA> LATIN SMALL LETTER E WITH CIRCUMFLEX
       
 18614 <e:>                   /xEB   <U00EB> LATIN SMALL LETTER E WITH DIAERESIS
       
 18615 <:+>                   /xEC   <U064B> ARABIC FATHATAN
       
 18616 <'+>                   /xED   <U064C> ARABIC DAMMATAN
       
 18617 <i/>>                  /xEE   <U00EE> LATIN SMALL LETTER I WITH CIRCUMFLEX
       
 18618 <i:>                   /xEF   <U00EF> LATIN SMALL LETTER I WITH DIAERESIS
       
 18619 <=+>                   /xF0   <U064D> ARABIC KASRATAN
       
 18620 <//+>                  /xF1   <U064E> ARABIC FATHA
       
 18621 <'+>                   /xF2   <U064F> ARABIC DAMMA
       
 18622 <1+>                   /xF3   <U0650> ARABIC KASRA
       
 18623 <o/>>                  /xF4   <U00F4> LATIN SMALL LETTER O WITH CIRCUMFLEX
       
 18624 <3+>                   /xF5   <U0651> ARABIC SHADDA
       
 18625 <0+>                   /xF6   <U0652> ARABIC SUKUN
       
 18626 <-:>                   /xF7   <U00F7> DIVISION SIGN
       
 18627 <u!!>                   /xF9   <U00F9> LATIN SMALL LETTER U WITH GRAVE
       
 18628 <u/>>                  /xFB   <U00FB> LATIN SMALL LETTER U WITH CIRCUMFLEX
       
 18629 <u:>                   /xFC   <U00FC> LATIN SMALL LETTER U WITH DIAERESIS
       
 18630 <LR>                   /xFD   <U200E> LEFT-TO-RIGHT MARK
       
 18631 <RL>                   /xFE   <U200F> RIGHT-TO-LEFT MARK
       
 18632 <y:>                   /xFF   <U00FF> LATIN SMALL LETTER Y WITH DIAERESIS
       
 18633 <NUL>                  /x00   <U0000> NUL
       
 18634 <SOH>                  /x01   <U0001> START OF HEADING (SOH)
       
 18635 <STX>                  /x02   <U0002> START OF TEXT (STX)
       
 18636 <ETX>                  /x03   <U0003> END OF TEXT (ETX)
       
 18637 <EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
       
 18638 <ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
       
 18639 <ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
       
 18640 <alert>                /x07   <U0007> BELL (BEL)
       
 18641 <BEL>                  /x07   <U0007> BELL (BEL)
       
 18642 <backspace>            /x08   <U0008> BACKSPACE (BS)
       
 18643 <tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
       
 18644 <newline>              /x0A   <U000A> LINE FEED (LF)
       
 18645 <vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
       
 18646 <form-feed>            /x0C   <U000C> FORM FEED (FF)
       
 18647 <carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
       
 18648 <DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
       
 18649 <DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
       
 18650 <DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
       
 18651 <DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
       
 18652 <DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
       
 18653 <NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
       
 18654 <SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
       
 18655 <ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
       
 18656 <CAN>                  /x18   <U0018> CANCEL (CAN)
       
 18657 <SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
       
 18658 <ESC>                  /x1B   <U001B> ESCAPE (ESC)
       
 18659 <IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
       
 18660 <IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 18661 <intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 18662 <IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
       
 18663 <IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
       
 18664 <DEL>                  /x7F   <U007F> DELETE (DEL)
       
 18665 <space>                /x20   <U0020> SPACE
       
 18666 <exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
       
 18667 <quotation-mark>       /x22   <U0022> QUOTATION MARK
       
 18668 <number-sign>          /x23   <U0023> NUMBER SIGN
       
 18669 <dollar-sign>          /x24   <U0024> DOLLAR SIGN
       
 18670 <percent-sign>         /x25   <U0025> PERCENT SIGN
       
 18671 <ampersand>            /x26   <U0026> AMPERSAND
       
 18672 <apostrophe>           /x27   <U0027> APOSTROPHE
       
 18673 <left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
       
 18674 <right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
       
 18675 <asterisk>             /x2A   <U002A> ASTERISK
       
 18676 <plus-sign>            /x2B   <U002B> PLUS SIGN
       
 18677 <comma>                /x2C   <U002C> COMMA
       
 18678 <hyphen>               /x2D   <U002D> HYPHEN-MINUS
       
 18679 <hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
       
 18680 <period>               /x2E   <U002E> FULL STOP
       
 18681 <full-stop>            /x2E   <U002E> FULL STOP
       
 18682 <slash>                /x2F   <U002F> SOLIDUS
       
 18683 <solidus>              /x2F   <U002F> SOLIDUS
       
 18684 <zero>                 /x30   <U0030> DIGIT ZERO
       
 18685 <one>                  /x31   <U0031> DIGIT ONE
       
 18686 <two>                  /x32   <U0032> DIGIT TWO
       
 18687 <three>                /x33   <U0033> DIGIT THREE
       
 18688 <four>                 /x34   <U0034> DIGIT FOUR
       
 18689 <five>                 /x35   <U0035> DIGIT FIVE
       
 18690 <six>                  /x36   <U0036> DIGIT SIX
       
 18691 <seven>                /x37   <U0037> DIGIT SEVEN
       
 18692 <eight>                /x38   <U0038> DIGIT EIGHT
       
 18693 <nine>                 /x39   <U0039> DIGIT NINE
       
 18694 <colon>                /x3A   <U003A> COLON
       
 18695 <semicolon>            /x3B   <U003B> SEMICOLON
       
 18696 <less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
       
 18697 <equals-sign>          /x3D   <U003D> EQUALS SIGN
       
 18698 <greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
       
 18699 <question-mark>        /x3F   <U003F> QUESTION MARK
       
 18700 <commercial-at>        /x40   <U0040> COMMERCIAL AT
       
 18701 <left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
       
 18702 <backslash>            /x5C   <U005C> REVERSE SOLIDUS
       
 18703 <reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
       
 18704 <right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
       
 18705 <circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
       
 18706 <circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
       
 18707 <underscore>           /x5F   <U005F> LOW LINE
       
 18708 <low-line>             /x5F   <U005F> LOW LINE
       
 18709 <grave-accent>         /x60   <U0060> GRAVE ACCENT
       
 18710 <left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
       
 18711 <left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
       
 18712 <vertical-line>        /x7C   <U007C> VERTICAL LINE
       
 18713 <right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
       
 18714 <right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
       
 18715 <tilde>                /x7E   <U007E> TILDE
       
 18716 END CHARMAP
       
 18717 
       
 18718 "
       
 18719 !
       
 18720 
 18512 mappingURL2_relativePathName
 18721 mappingURL2_relativePathName
 18513     ^ 'CP1256'
 18722     ^ 'CP1256'
 18514 ! !
 18723 ! !
 18515 
 18724 
 18516 !CharacterEncoder::MS_Arabic class methodsFor:'queries'!
 18725 !CharacterEncoder::MS_Arabic class methodsFor:'queries'!
 18519     ^ #( 'ms-arabic' 'ms-cp1256' 'cp1256' )
 18728     ^ #( 'ms-arabic' 'ms-cp1256' 'cp1256' )
 18520 ! !
 18729 ! !
 18521 
 18730 
 18522 !CharacterEncoder::MS_Cyrillic class methodsFor:'mapping'!
 18731 !CharacterEncoder::MS_Cyrillic class methodsFor:'mapping'!
 18523 
 18732 
       
 18733 mapping
       
 18734 "
       
 18735 # From: http://std.dkuug.dk/i18n/charmaps/CP1251
       
 18736 
       
 18737 <code_set_name> CP1251
       
 18738 <comment_char> %
       
 18739 <escape_char> /
       
 18740 % version: 1.0
       
 18741 % repertoiremap: mnemonic,ds
       
 18742 %  source: UNICODE 1.0
       
 18743 
       
 18744 % alias MS-CYRL
       
 18745 CHARMAP
       
 18746 <NU>                   /x00   <U0000> NULL (NUL)
       
 18747 <SH>                   /x01   <U0001> START OF HEADING (SOH)
       
 18748 <SX>                   /x02   <U0002> START OF TEXT (STX)
       
 18749 <EX>                   /x03   <U0003> END OF TEXT (ETX)
       
 18750 <ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
       
 18751 <EQ>                   /x05   <U0005> ENQUIRY (ENQ)
       
 18752 <AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
       
 18753 <BL>                   /x07   <U0007> BELL (BEL)
       
 18754 <BS>                   /x08   <U0008> BACKSPACE (BS)
       
 18755 <HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
       
 18756 <LF>                   /x0A   <U000A> LINE FEED (LF)
       
 18757 <VT>                   /x0B   <U000B> LINE TABULATION (VT)
       
 18758 <FF>                   /x0C   <U000C> FORM FEED (FF)
       
 18759 <CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
       
 18760 <SO>                   /x0E   <U000E> SHIFT OUT (SO)
       
 18761 <SI>                   /x0F   <U000F> SHIFT IN (SI)
       
 18762 <DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
       
 18763 <D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
       
 18764 <D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
       
 18765 <D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
       
 18766 <D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
       
 18767 <NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
       
 18768 <SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
       
 18769 <EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
       
 18770 <CN>                   /x18   <U0018> CANCEL (CAN)
       
 18771 <EM>                   /x19   <U0019> END OF MEDIUM (EM)
       
 18772 <SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
       
 18773 <EC>                   /x1B   <U001B> ESCAPE (ESC)
       
 18774 <FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
       
 18775 <GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 18776 <RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
       
 18777 <US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
       
 18778 <SP>                   /x20   <U0020> SPACE
       
 18779 <!!>                    /x21   <U0021> EXCLAMATION MARK
       
 18780 <'>                    /x22   <U0022> QUOTATION MARK
       
 18781 <Nb>                   /x23   <U0023> NUMBER SIGN
       
 18782 <DO>                   /x24   <U0024> DOLLAR SIGN
       
 18783 <%>                    /x25   <U0025> PERCENT SIGN
       
 18784 <&>                    /x26   <U0026> AMPERSAND
       
 18785 <'>                    /x27   <U0027> APOSTROPHE
       
 18786 <(>                    /x28   <U0028> LEFT PARENTHESIS
       
 18787 <)>                    /x29   <U0029> RIGHT PARENTHESIS
       
 18788 <*>                    /x2A   <U002A> ASTERISK
       
 18789 <+>                    /x2B   <U002B> PLUS SIGN
       
 18790 <,>                    /x2C   <U002C> COMMA
       
 18791 <->                    /x2D   <U002D> HYPHEN-MINUS
       
 18792 <.>                    /x2E   <U002E> FULL STOP
       
 18793 <//>                   /x2F   <U002F> SOLIDUS
       
 18794 <0>                    /x30   <U0030> DIGIT ZERO
       
 18795 <1>                    /x31   <U0031> DIGIT ONE
       
 18796 <2>                    /x32   <U0032> DIGIT TWO
       
 18797 <3>                    /x33   <U0033> DIGIT THREE
       
 18798 <4>                    /x34   <U0034> DIGIT FOUR
       
 18799 <5>                    /x35   <U0035> DIGIT FIVE
       
 18800 <6>                    /x36   <U0036> DIGIT SIX
       
 18801 <7>                    /x37   <U0037> DIGIT SEVEN
       
 18802 <8>                    /x38   <U0038> DIGIT EIGHT
       
 18803 <9>                    /x39   <U0039> DIGIT NINE
       
 18804 <:>                    /x3A   <U003A> COLON
       
 18805 <;>                    /x3B   <U003B> SEMICOLON
       
 18806 <<>                    /x3C   <U003C> LESS-THAN SIGN
       
 18807 <=>                    /x3D   <U003D> EQUALS SIGN
       
 18808 </>>                   /x3E   <U003E> GREATER-THAN SIGN
       
 18809 <?>                    /x3F   <U003F> QUESTION MARK
       
 18810 <At>                   /x40   <U0040> COMMERCIAL AT
       
 18811 <A>                    /x41   <U0041> LATIN CAPITAL LETTER A
       
 18812 <B>                    /x42   <U0042> LATIN CAPITAL LETTER B
       
 18813 <C>                    /x43   <U0043> LATIN CAPITAL LETTER C
       
 18814 <D>                    /x44   <U0044> LATIN CAPITAL LETTER D
       
 18815 <E>                    /x45   <U0045> LATIN CAPITAL LETTER E
       
 18816 <F>                    /x46   <U0046> LATIN CAPITAL LETTER F
       
 18817 <G>                    /x47   <U0047> LATIN CAPITAL LETTER G
       
 18818 <H>                    /x48   <U0048> LATIN CAPITAL LETTER H
       
 18819 <I>                    /x49   <U0049> LATIN CAPITAL LETTER I
       
 18820 <J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
       
 18821 <K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
       
 18822 <L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
       
 18823 <M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
       
 18824 <N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
       
 18825 <O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
       
 18826 <P>                    /x50   <U0050> LATIN CAPITAL LETTER P
       
 18827 <Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
       
 18828 <R>                    /x52   <U0052> LATIN CAPITAL LETTER R
       
 18829 <S>                    /x53   <U0053> LATIN CAPITAL LETTER S
       
 18830 <T>                    /x54   <U0054> LATIN CAPITAL LETTER T
       
 18831 <U>                    /x55   <U0055> LATIN CAPITAL LETTER U
       
 18832 <V>                    /x56   <U0056> LATIN CAPITAL LETTER V
       
 18833 <W>                    /x57   <U0057> LATIN CAPITAL LETTER W
       
 18834 <X>                    /x58   <U0058> LATIN CAPITAL LETTER X
       
 18835 <Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
       
 18836 <Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
       
 18837 <<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
       
 18838 <////>                 /x5C   <U005C> REVERSE SOLIDUS
       
 18839 <)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
       
 18840 <'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
       
 18841 <_>                    /x5F   <U005F> LOW LINE
       
 18842 <'!!>                   /x60   <U0060> GRAVE ACCENT
       
 18843 <a>                    /x61   <U0061> LATIN SMALL LETTER A
       
 18844 <b>                    /x62   <U0062> LATIN SMALL LETTER B
       
 18845 <c>                    /x63   <U0063> LATIN SMALL LETTER C
       
 18846 <d>                    /x64   <U0064> LATIN SMALL LETTER D
       
 18847 <e>                    /x65   <U0065> LATIN SMALL LETTER E
       
 18848 <f>                    /x66   <U0066> LATIN SMALL LETTER F
       
 18849 <g>                    /x67   <U0067> LATIN SMALL LETTER G
       
 18850 <h>                    /x68   <U0068> LATIN SMALL LETTER H
       
 18851 <i>                    /x69   <U0069> LATIN SMALL LETTER I
       
 18852 <j>                    /x6A   <U006A> LATIN SMALL LETTER J
       
 18853 <k>                    /x6B   <U006B> LATIN SMALL LETTER K
       
 18854 <l>                    /x6C   <U006C> LATIN SMALL LETTER L
       
 18855 <m>                    /x6D   <U006D> LATIN SMALL LETTER M
       
 18856 <n>                    /x6E   <U006E> LATIN SMALL LETTER N
       
 18857 <o>                    /x6F   <U006F> LATIN SMALL LETTER O
       
 18858 <p>                    /x70   <U0070> LATIN SMALL LETTER P
       
 18859 <q>                    /x71   <U0071> LATIN SMALL LETTER Q
       
 18860 <r>                    /x72   <U0072> LATIN SMALL LETTER R
       
 18861 <s>                    /x73   <U0073> LATIN SMALL LETTER S
       
 18862 <t>                    /x74   <U0074> LATIN SMALL LETTER T
       
 18863 <u>                    /x75   <U0075> LATIN SMALL LETTER U
       
 18864 <v>                    /x76   <U0076> LATIN SMALL LETTER V
       
 18865 <w>                    /x77   <U0077> LATIN SMALL LETTER W
       
 18866 <x>                    /x78   <U0078> LATIN SMALL LETTER X
       
 18867 <y>                    /x79   <U0079> LATIN SMALL LETTER Y
       
 18868 <z>                    /x7A   <U007A> LATIN SMALL LETTER Z
       
 18869 <(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
       
 18870 <!!!!>                   /x7C   <U007C> VERTICAL LINE
       
 18871 <!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
       
 18872 <'?>                   /x7E   <U007E> TILDE
       
 18873 <DT>                   /x7F   <U007F> DELETE (DEL)
       
 18874 <D%>                   /x80   <U0402> CYRILLIC CAPITAL LETTER DJE (Serbocroatian)
       
 18875 <G%>                   /x81   <U0403> CYRILLIC CAPITAL LETTER GJE
       
 18876 <.9>                   /x82   <U201A> SINGLE LOW-9 QUOTATION MARK
       
 18877 <g%>                   /x83   <U0453> CYRILLIC SMALL LETTER GJE
       
 18878 <:9>                   /x84   <U201E> DOUBLE LOW-9 QUOTATION MARK
       
 18879 <.3>                   /x85   <U2026> HORIZONTAL ELLIPSIS
       
 18880 <//->                  /x86   <U2020> DAGGER
       
 18881 <//=>                  /x87   <U2021> DOUBLE DAGGER
       
 18882 <%0>                   /x89   <U2030> PER MILLE SIGN
       
 18883 <LJ>                   /x8A   <U0409> CYRILLIC CAPITAL LETTER LJE
       
 18884 <<1>                   /x8B   <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
       
 18885 <NJ>                   /x8C   <U040A> CYRILLIC CAPITAL LETTER NJE
       
 18886 <KJ>                   /x8D   <U040C> CYRILLIC CAPITAL LETTER KJE
       
 18887 <Ts>                   /x8E   <U040B> CYRILLIC CAPITAL LETTER TSHE (Serbocroatian)
       
 18888 <DZ>                   /x8F   <U040F> CYRILLIC CAPITAL LETTER DZHE
       
 18889 <d%>                   /x90   <U0452> CYRILLIC SMALL LETTER DJE (Serbocroatian)
       
 18890 <'6>                   /x91   <U2018> LEFT SINGLE QUOTATION MARK
       
 18891 <'9>                   /x92   <U2019> RIGHT SINGLE QUOTATION MARK
       
 18892 <'6>                   /x93   <U201C> LEFT DOUBLE QUOTATION MARK
       
 18893 <'9>                   /x94   <U201D> RIGHT DOUBLE QUOTATION MARK
       
 18894 <sb>                   /x95   <U2022> BULLET
       
 18895 <-N>                   /x96   <U2013> EN DASH
       
 18896 <-M>                   /x97   <U2014> EM DASH
       
 18897 <TM>                   /x99   <U2122> TRADE MARK SIGN
       
 18898 <lj>                   /x9A   <U0459> CYRILLIC SMALL LETTER LJE
       
 18899 </>1>                  /x9B   <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
       
 18900 <nj>                   /x9C   <U045A> CYRILLIC SMALL LETTER NJE
       
 18901 <kj>                   /x9D   <U045C> CYRILLIC SMALL LETTER KJE
       
 18902 <ts>                   /x9E   <U045B> CYRILLIC SMALL LETTER TSHE (Serbocroatian)
       
 18903 <dz>                   /x9F   <U045F> CYRILLIC SMALL LETTER DZHE
       
 18904 <NS>                   /xA0   <U00A0> NO-BREAK SPACE
       
 18905 <V%>                   /xA1   <U040E> CYRILLIC CAPITAL LETTER SHORT U (Byelorussian)
       
 18906 <v%>                   /xA2   <U045E> CYRILLIC SMALL LETTER SHORT U (Byelorussian)
       
 18907 <J%>                   /xA3   <U0408> CYRILLIC CAPITAL LETTER JE
       
 18908 <Cu>                   /xA4   <U00A4> CURRENCY SIGN
       
 18909 <G3>                   /xA5   <U0490> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
       
 18910 <BB>                   /xA6   <U00A6> BROKEN BAR
       
 18911 <SE>                   /xA7   <U00A7> SECTION SIGN
       
 18912 <IO>                   /xA8   <U0401> CYRILLIC CAPITAL LETTER IO
       
 18913 <Co>                   /xA9   <U00A9> COPYRIGHT SIGN
       
 18914 <IE>                   /xAA   <U0404> CYRILLIC CAPITAL LETTER UKRAINIAN IE
       
 18915 <<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 18916 <NO>                   /xAC   <U00AC> NOT SIGN
       
 18917 <-->                   /xAD   <U00AD> SOFT HYPHEN
       
 18918 <Rg>                   /xAE   <U00AE> REGISTERED SIGN
       
 18919 <YI>                   /xAF   <U0407> CYRILLIC CAPITAL LETTER YI (Ukrainian)
       
 18920 <DG>                   /xB0   <U00B0> DEGREE SIGN
       
 18921 <+->                   /xB1   <U00B1> PLUS-MINUS SIGN
       
 18922 <II>                   /xB2   <U0406> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
       
 18923 <ii>                   /xB3   <U0456> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
       
 18924 <g3>                   /xB4   <U0491> CYRILLIC SMALL LETTER GHE WITH UPTURN
       
 18925 <My>                   /xB5   <U00B5> MICRO SIGN
       
 18926 <PI>                   /xB6   <U00B6> PILCROW SIGN
       
 18927 <.M>                   /xB7   <U00B7> MIDDLE DOT
       
 18928 <io>                   /xB8   <U0451> CYRILLIC SMALL LETTER IO
       
 18929 <N0>                   /xB9   <U2116> NUMERO SIGN
       
 18930 <ie>                   /xBA   <U0454> CYRILLIC SMALL LETTER UKRAINIAN IE
       
 18931 </>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 18932 <j%>                   /xBC   <U0458> CYRILLIC SMALL LETTER JE
       
 18933 <DS>                   /xBD   <U0405> CYRILLIC CAPITAL LETTER DZE
       
 18934 <ds>                   /xBE   <U0455> CYRILLIC SMALL LETTER DZE
       
 18935 <yi>                   /xBF   <U0457> CYRILLIC SMALL LETTER YI (Ukrainian)
       
 18936 <A=>                   /xC0   <U0410> CYRILLIC CAPITAL LETTER A
       
 18937 <B=>                   /xC1   <U0411> CYRILLIC CAPITAL LETTER BE
       
 18938 <V=>                   /xC2   <U0412> CYRILLIC CAPITAL LETTER VE
       
 18939 <G=>                   /xC3   <U0413> CYRILLIC CAPITAL LETTER GHE
       
 18940 <D=>                   /xC4   <U0414> CYRILLIC CAPITAL LETTER DE
       
 18941 <E=>                   /xC5   <U0415> CYRILLIC CAPITAL LETTER IE
       
 18942 <Z%>                   /xC6   <U0416> CYRILLIC CAPITAL LETTER ZHE
       
 18943 <Z=>                   /xC7   <U0417> CYRILLIC CAPITAL LETTER ZE
       
 18944 <I=>                   /xC8   <U0418> CYRILLIC CAPITAL LETTER I
       
 18945 <J=>                   /xC9   <U0419> CYRILLIC CAPITAL LETTER SHORT I
       
 18946 <K=>                   /xCA   <U041A> CYRILLIC CAPITAL LETTER KA
       
 18947 <L=>                   /xCB   <U041B> CYRILLIC CAPITAL LETTER EL
       
 18948 <M=>                   /xCC   <U041C> CYRILLIC CAPITAL LETTER EM
       
 18949 <N=>                   /xCD   <U041D> CYRILLIC CAPITAL LETTER EN
       
 18950 <O=>                   /xCE   <U041E> CYRILLIC CAPITAL LETTER O
       
 18951 <P=>                   /xCF   <U041F> CYRILLIC CAPITAL LETTER PE
       
 18952 <R=>                   /xD0   <U0420> CYRILLIC CAPITAL LETTER ER
       
 18953 <S=>                   /xD1   <U0421> CYRILLIC CAPITAL LETTER ES
       
 18954 <T=>                   /xD2   <U0422> CYRILLIC CAPITAL LETTER TE
       
 18955 <U=>                   /xD3   <U0423> CYRILLIC CAPITAL LETTER U
       
 18956 <F=>                   /xD4   <U0424> CYRILLIC CAPITAL LETTER EF
       
 18957 <H=>                   /xD5   <U0425> CYRILLIC CAPITAL LETTER HA
       
 18958 <C=>                   /xD6   <U0426> CYRILLIC CAPITAL LETTER TSE
       
 18959 <C%>                   /xD7   <U0427> CYRILLIC CAPITAL LETTER CHE
       
 18960 <S%>                   /xD8   <U0428> CYRILLIC CAPITAL LETTER SHA
       
 18961 <Sc>                   /xD9   <U0429> CYRILLIC CAPITAL LETTER SHCHA
       
 18962 <='>                   /xDA   <U042A> CYRILLIC CAPITAL LETTER HARD SIGN
       
 18963 <Y=>                   /xDB   <U042B> CYRILLIC CAPITAL LETTER YERU
       
 18964 <%'>                   /xDC   <U042C> CYRILLIC CAPITAL LETTER SOFT SIGN
       
 18965 <JE>                   /xDD   <U042D> CYRILLIC CAPITAL LETTER E
       
 18966 <JU>                   /xDE   <U042E> CYRILLIC CAPITAL LETTER YU
       
 18967 <JA>                   /xDF   <U042F> CYRILLIC CAPITAL LETTER YA
       
 18968 <a=>                   /xE0   <U0430> CYRILLIC SMALL LETTER A
       
 18969 <b=>                   /xE1   <U0431> CYRILLIC SMALL LETTER BE
       
 18970 <v=>                   /xE2   <U0432> CYRILLIC SMALL LETTER VE
       
 18971 <g=>                   /xE3   <U0433> CYRILLIC SMALL LETTER GHE
       
 18972 <d=>                   /xE4   <U0434> CYRILLIC SMALL LETTER DE
       
 18973 <e=>                   /xE5   <U0435> CYRILLIC SMALL LETTER IE
       
 18974 <z%>                   /xE6   <U0436> CYRILLIC SMALL LETTER ZHE
       
 18975 <z=>                   /xE7   <U0437> CYRILLIC SMALL LETTER ZE
       
 18976 <i=>                   /xE8   <U0438> CYRILLIC SMALL LETTER I
       
 18977 <j=>                   /xE9   <U0439> CYRILLIC SMALL LETTER SHORT I
       
 18978 <k=>                   /xEA   <U043A> CYRILLIC SMALL LETTER KA
       
 18979 <l=>                   /xEB   <U043B> CYRILLIC SMALL LETTER EL
       
 18980 <m=>                   /xEC   <U043C> CYRILLIC SMALL LETTER EM
       
 18981 <n=>                   /xED   <U043D> CYRILLIC SMALL LETTER EN
       
 18982 <o=>                   /xEE   <U043E> CYRILLIC SMALL LETTER O
       
 18983 <p=>                   /xEF   <U043F> CYRILLIC SMALL LETTER PE
       
 18984 <r=>                   /xF0   <U0440> CYRILLIC SMALL LETTER ER
       
 18985 <s=>                   /xF1   <U0441> CYRILLIC SMALL LETTER ES
       
 18986 <t=>                   /xF2   <U0442> CYRILLIC SMALL LETTER TE
       
 18987 <u=>                   /xF3   <U0443> CYRILLIC SMALL LETTER U
       
 18988 <f=>                   /xF4   <U0444> CYRILLIC SMALL LETTER EF
       
 18989 <h=>                   /xF5   <U0445> CYRILLIC SMALL LETTER HA
       
 18990 <c=>                   /xF6   <U0446> CYRILLIC SMALL LETTER TSE
       
 18991 <c%>                   /xF7   <U0447> CYRILLIC SMALL LETTER CHE
       
 18992 <s%>                   /xF8   <U0448> CYRILLIC SMALL LETTER SHA
       
 18993 <sc>                   /xF9   <U0449> CYRILLIC SMALL LETTER SHCHA
       
 18994 <='>                   /xFA   <U044A> CYRILLIC SMALL LETTER HARD SIGN
       
 18995 <y=>                   /xFB   <U044B> CYRILLIC SMALL LETTER YERU
       
 18996 <%'>                   /xFC   <U044C> CYRILLIC SMALL LETTER SOFT SIGN
       
 18997 <je>                   /xFD   <U044D> CYRILLIC SMALL LETTER E
       
 18998 <ju>                   /xFE   <U044E> CYRILLIC SMALL LETTER YU
       
 18999 <ja>                   /xFF   <U044F> CYRILLIC SMALL LETTER YA
       
 19000 <NUL>                  /x00   <U0000> NUL
       
 19001 <SOH>                  /x01   <U0001> START OF HEADING (SOH)
       
 19002 <STX>                  /x02   <U0002> START OF TEXT (STX)
       
 19003 <ETX>                  /x03   <U0003> END OF TEXT (ETX)
       
 19004 <EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
       
 19005 <ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
       
 19006 <ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
       
 19007 <alert>                /x07   <U0007> BELL (BEL)
       
 19008 <BEL>                  /x07   <U0007> BELL (BEL)
       
 19009 <backspace>            /x08   <U0008> BACKSPACE (BS)
       
 19010 <tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
       
 19011 <newline>              /x0A   <U000A> LINE FEED (LF)
       
 19012 <vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
       
 19013 <form-feed>            /x0C   <U000C> FORM FEED (FF)
       
 19014 <carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
       
 19015 <DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
       
 19016 <DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
       
 19017 <DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
       
 19018 <DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
       
 19019 <DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
       
 19020 <NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
       
 19021 <SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
       
 19022 <ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
       
 19023 <CAN>                  /x18   <U0018> CANCEL (CAN)
       
 19024 <SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
       
 19025 <ESC>                  /x1B   <U001B> ESCAPE (ESC)
       
 19026 <IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
       
 19027 <IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 19028 <intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 19029 <IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
       
 19030 <IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
       
 19031 <DEL>                  /x7F   <U007F> DELETE (DEL)
       
 19032 <space>                /x20   <U0020> SPACE
       
 19033 <exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
       
 19034 <quotation-mark>       /x22   <U0022> QUOTATION MARK
       
 19035 <number-sign>          /x23   <U0023> NUMBER SIGN
       
 19036 <dollar-sign>          /x24   <U0024> DOLLAR SIGN
       
 19037 <percent-sign>         /x25   <U0025> PERCENT SIGN
       
 19038 <ampersand>            /x26   <U0026> AMPERSAND
       
 19039 <apostrophe>           /x27   <U0027> APOSTROPHE
       
 19040 <left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
       
 19041 <right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
       
 19042 <asterisk>             /x2A   <U002A> ASTERISK
       
 19043 <plus-sign>            /x2B   <U002B> PLUS SIGN
       
 19044 <comma>                /x2C   <U002C> COMMA
       
 19045 <hyphen>               /x2D   <U002D> HYPHEN-MINUS
       
 19046 <hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
       
 19047 <period>               /x2E   <U002E> FULL STOP
       
 19048 <full-stop>            /x2E   <U002E> FULL STOP
       
 19049 <slash>                /x2F   <U002F> SOLIDUS
       
 19050 <solidus>              /x2F   <U002F> SOLIDUS
       
 19051 <zero>                 /x30   <U0030> DIGIT ZERO
       
 19052 <one>                  /x31   <U0031> DIGIT ONE
       
 19053 <two>                  /x32   <U0032> DIGIT TWO
       
 19054 <three>                /x33   <U0033> DIGIT THREE
       
 19055 <four>                 /x34   <U0034> DIGIT FOUR
       
 19056 <five>                 /x35   <U0035> DIGIT FIVE
       
 19057 <six>                  /x36   <U0036> DIGIT SIX
       
 19058 <seven>                /x37   <U0037> DIGIT SEVEN
       
 19059 <eight>                /x38   <U0038> DIGIT EIGHT
       
 19060 <nine>                 /x39   <U0039> DIGIT NINE
       
 19061 <colon>                /x3A   <U003A> COLON
       
 19062 <semicolon>            /x3B   <U003B> SEMICOLON
       
 19063 <less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
       
 19064 <equals-sign>          /x3D   <U003D> EQUALS SIGN
       
 19065 <greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
       
 19066 <question-mark>        /x3F   <U003F> QUESTION MARK
       
 19067 <commercial-at>        /x40   <U0040> COMMERCIAL AT
       
 19068 <left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
       
 19069 <backslash>            /x5C   <U005C> REVERSE SOLIDUS
       
 19070 <reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
       
 19071 <right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
       
 19072 <circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
       
 19073 <circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
       
 19074 <underscore>           /x5F   <U005F> LOW LINE
       
 19075 <low-line>             /x5F   <U005F> LOW LINE
       
 19076 <grave-accent>         /x60   <U0060> GRAVE ACCENT
       
 19077 <left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
       
 19078 <left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
       
 19079 <vertical-line>        /x7C   <U007C> VERTICAL LINE
       
 19080 <right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
       
 19081 <right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
       
 19082 <tilde>                /x7E   <U007E> TILDE
       
 19083 END CHARMAP
       
 19084 
       
 19085 "
       
 19086 !
       
 19087 
 18524 mappingURL2_relativePathName
 19088 mappingURL2_relativePathName
 18525     ^ 'CP1251'
 19089     ^ 'CP1251'
 18526 ! !
 19090 ! !
 18527 
 19091 
 18528 !CharacterEncoder::MS_Cyrillic class methodsFor:'queries'!
 19092 !CharacterEncoder::MS_Cyrillic class methodsFor:'queries'!
 18531     ^ #( 'ms-cyrillic' 'ms-cp1251' 'cp1251' )
 19095     ^ #( 'ms-cyrillic' 'ms-cp1251' 'cp1251' )
 18532 ! !
 19096 ! !
 18533 
 19097 
 18534 !CharacterEncoder::MS_EastEuropean class methodsFor:'mapping'!
 19098 !CharacterEncoder::MS_EastEuropean class methodsFor:'mapping'!
 18535 
 19099 
       
 19100 mapping
       
 19101 "
       
 19102 # From: http://std.dkuug.dk/i18n/charmaps/CP1250
       
 19103 
       
 19104 <code_set_name> CP1250
       
 19105 <comment_char> %
       
 19106 <escape_char> /
       
 19107 % version: 1.0
       
 19108 % repertoiremap: mnemonic,ds
       
 19109 %  source: UNICODE 1.0
       
 19110 
       
 19111 % alias MS-EE
       
 19112 CHARMAP
       
 19113 <NU>                   /x00   <U0000> NULL (NUL)
       
 19114 <SH>                   /x01   <U0001> START OF HEADING (SOH)
       
 19115 <SX>                   /x02   <U0002> START OF TEXT (STX)
       
 19116 <EX>                   /x03   <U0003> END OF TEXT (ETX)
       
 19117 <ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
       
 19118 <EQ>                   /x05   <U0005> ENQUIRY (ENQ)
       
 19119 <AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
       
 19120 <BL>                   /x07   <U0007> BELL (BEL)
       
 19121 <BS>                   /x08   <U0008> BACKSPACE (BS)
       
 19122 <HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
       
 19123 <LF>                   /x0A   <U000A> LINE FEED (LF)
       
 19124 <VT>                   /x0B   <U000B> LINE TABULATION (VT)
       
 19125 <FF>                   /x0C   <U000C> FORM FEED (FF)
       
 19126 <CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
       
 19127 <SO>                   /x0E   <U000E> SHIFT OUT (SO)
       
 19128 <SI>                   /x0F   <U000F> SHIFT IN (SI)
       
 19129 <DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
       
 19130 <D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
       
 19131 <D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
       
 19132 <D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
       
 19133 <D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
       
 19134 <NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
       
 19135 <SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
       
 19136 <EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
       
 19137 <CN>                   /x18   <U0018> CANCEL (CAN)
       
 19138 <EM>                   /x19   <U0019> END OF MEDIUM (EM)
       
 19139 <SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
       
 19140 <EC>                   /x1B   <U001B> ESCAPE (ESC)
       
 19141 <FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
       
 19142 <GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 19143 <RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
       
 19144 <US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
       
 19145 <SP>                   /x20   <U0020> SPACE
       
 19146 <!!>                    /x21   <U0021> EXCLAMATION MARK
       
 19147 <'>                    /x22   <U0022> QUOTATION MARK
       
 19148 <Nb>                   /x23   <U0023> NUMBER SIGN
       
 19149 <DO>                   /x24   <U0024> DOLLAR SIGN
       
 19150 <%>                    /x25   <U0025> PERCENT SIGN
       
 19151 <&>                    /x26   <U0026> AMPERSAND
       
 19152 <'>                    /x27   <U0027> APOSTROPHE
       
 19153 <(>                    /x28   <U0028> LEFT PARENTHESIS
       
 19154 <)>                    /x29   <U0029> RIGHT PARENTHESIS
       
 19155 <*>                    /x2A   <U002A> ASTERISK
       
 19156 <+>                    /x2B   <U002B> PLUS SIGN
       
 19157 <,>                    /x2C   <U002C> COMMA
       
 19158 <->                    /x2D   <U002D> HYPHEN-MINUS
       
 19159 <.>                    /x2E   <U002E> FULL STOP
       
 19160 <//>                   /x2F   <U002F> SOLIDUS
       
 19161 <0>                    /x30   <U0030> DIGIT ZERO
       
 19162 <1>                    /x31   <U0031> DIGIT ONE
       
 19163 <2>                    /x32   <U0032> DIGIT TWO
       
 19164 <3>                    /x33   <U0033> DIGIT THREE
       
 19165 <4>                    /x34   <U0034> DIGIT FOUR
       
 19166 <5>                    /x35   <U0035> DIGIT FIVE
       
 19167 <6>                    /x36   <U0036> DIGIT SIX
       
 19168 <7>                    /x37   <U0037> DIGIT SEVEN
       
 19169 <8>                    /x38   <U0038> DIGIT EIGHT
       
 19170 <9>                    /x39   <U0039> DIGIT NINE
       
 19171 <:>                    /x3A   <U003A> COLON
       
 19172 <;>                    /x3B   <U003B> SEMICOLON
       
 19173 <<>                    /x3C   <U003C> LESS-THAN SIGN
       
 19174 <=>                    /x3D   <U003D> EQUALS SIGN
       
 19175 </>>                   /x3E   <U003E> GREATER-THAN SIGN
       
 19176 <?>                    /x3F   <U003F> QUESTION MARK
       
 19177 <At>                   /x40   <U0040> COMMERCIAL AT
       
 19178 <A>                    /x41   <U0041> LATIN CAPITAL LETTER A
       
 19179 <B>                    /x42   <U0042> LATIN CAPITAL LETTER B
       
 19180 <C>                    /x43   <U0043> LATIN CAPITAL LETTER C
       
 19181 <D>                    /x44   <U0044> LATIN CAPITAL LETTER D
       
 19182 <E>                    /x45   <U0045> LATIN CAPITAL LETTER E
       
 19183 <F>                    /x46   <U0046> LATIN CAPITAL LETTER F
       
 19184 <G>                    /x47   <U0047> LATIN CAPITAL LETTER G
       
 19185 <H>                    /x48   <U0048> LATIN CAPITAL LETTER H
       
 19186 <I>                    /x49   <U0049> LATIN CAPITAL LETTER I
       
 19187 <J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
       
 19188 <K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
       
 19189 <L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
       
 19190 <M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
       
 19191 <N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
       
 19192 <O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
       
 19193 <P>                    /x50   <U0050> LATIN CAPITAL LETTER P
       
 19194 <Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
       
 19195 <R>                    /x52   <U0052> LATIN CAPITAL LETTER R
       
 19196 <S>                    /x53   <U0053> LATIN CAPITAL LETTER S
       
 19197 <T>                    /x54   <U0054> LATIN CAPITAL LETTER T
       
 19198 <U>                    /x55   <U0055> LATIN CAPITAL LETTER U
       
 19199 <V>                    /x56   <U0056> LATIN CAPITAL LETTER V
       
 19200 <W>                    /x57   <U0057> LATIN CAPITAL LETTER W
       
 19201 <X>                    /x58   <U0058> LATIN CAPITAL LETTER X
       
 19202 <Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
       
 19203 <Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
       
 19204 <<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
       
 19205 <////>                 /x5C   <U005C> REVERSE SOLIDUS
       
 19206 <)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
       
 19207 <'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
       
 19208 <_>                    /x5F   <U005F> LOW LINE
       
 19209 <'!!>                   /x60   <U0060> GRAVE ACCENT
       
 19210 <a>                    /x61   <U0061> LATIN SMALL LETTER A
       
 19211 <b>                    /x62   <U0062> LATIN SMALL LETTER B
       
 19212 <c>                    /x63   <U0063> LATIN SMALL LETTER C
       
 19213 <d>                    /x64   <U0064> LATIN SMALL LETTER D
       
 19214 <e>                    /x65   <U0065> LATIN SMALL LETTER E
       
 19215 <f>                    /x66   <U0066> LATIN SMALL LETTER F
       
 19216 <g>                    /x67   <U0067> LATIN SMALL LETTER G
       
 19217 <h>                    /x68   <U0068> LATIN SMALL LETTER H
       
 19218 <i>                    /x69   <U0069> LATIN SMALL LETTER I
       
 19219 <j>                    /x6A   <U006A> LATIN SMALL LETTER J
       
 19220 <k>                    /x6B   <U006B> LATIN SMALL LETTER K
       
 19221 <l>                    /x6C   <U006C> LATIN SMALL LETTER L
       
 19222 <m>                    /x6D   <U006D> LATIN SMALL LETTER M
       
 19223 <n>                    /x6E   <U006E> LATIN SMALL LETTER N
       
 19224 <o>                    /x6F   <U006F> LATIN SMALL LETTER O
       
 19225 <p>                    /x70   <U0070> LATIN SMALL LETTER P
       
 19226 <q>                    /x71   <U0071> LATIN SMALL LETTER Q
       
 19227 <r>                    /x72   <U0072> LATIN SMALL LETTER R
       
 19228 <s>                    /x73   <U0073> LATIN SMALL LETTER S
       
 19229 <t>                    /x74   <U0074> LATIN SMALL LETTER T
       
 19230 <u>                    /x75   <U0075> LATIN SMALL LETTER U
       
 19231 <v>                    /x76   <U0076> LATIN SMALL LETTER V
       
 19232 <w>                    /x77   <U0077> LATIN SMALL LETTER W
       
 19233 <x>                    /x78   <U0078> LATIN SMALL LETTER X
       
 19234 <y>                    /x79   <U0079> LATIN SMALL LETTER Y
       
 19235 <z>                    /x7A   <U007A> LATIN SMALL LETTER Z
       
 19236 <(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
       
 19237 <!!!!>                   /x7C   <U007C> VERTICAL LINE
       
 19238 <!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
       
 19239 <'?>                   /x7E   <U007E> TILDE
       
 19240 <DT>                   /x7F   <U007F> DELETE (DEL)
       
 19241 <.9>                   /x82   <U201A> SINGLE LOW-9 QUOTATION MARK
       
 19242 <:9>                   /x84   <U201E> DOUBLE LOW-9 QUOTATION MARK
       
 19243 <.3>                   /x85   <U2026> HORIZONTAL ELLIPSIS
       
 19244 <//->                  /x86   <U2020> DAGGER
       
 19245 <//=>                  /x87   <U2021> DOUBLE DAGGER
       
 19246 <%0>                   /x89   <U2030> PER MILLE SIGN
       
 19247 <S<>                   /x8A   <U0160> LATIN CAPITAL LETTER S WITH CARON
       
 19248 <<1>                   /x8B   <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
       
 19249 <S'>                   /x8C   <U015A> LATIN CAPITAL LETTER S WITH ACUTE
       
 19250 <T<>                   /x8D   <U0164> LATIN CAPITAL LETTER T WITH CARON
       
 19251 <Z<>                   /x8E   <U017D> LATIN CAPITAL LETTER Z WITH CARON
       
 19252 <Z'>                   /x8F   <U0179> LATIN CAPITAL LETTER Z WITH ACUTE
       
 19253 <'6>                   /x91   <U2018> LEFT SINGLE QUOTATION MARK
       
 19254 <'9>                   /x92   <U2019> RIGHT SINGLE QUOTATION MARK
       
 19255 <'6>                   /x93   <U201C> LEFT DOUBLE QUOTATION MARK
       
 19256 <'9>                   /x94   <U201D> RIGHT DOUBLE QUOTATION MARK
       
 19257 <sb>                   /x95   <U2022> BULLET
       
 19258 <-N>                   /x96   <U2013> EN DASH
       
 19259 <-M>                   /x97   <U2014> EM DASH
       
 19260 <TM>                   /x99   <U2122> TRADE MARK SIGN
       
 19261 <s<>                   /x9A   <U0161> LATIN SMALL LETTER S WITH CARON
       
 19262 </>1>                  /x9B   <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
       
 19263 <s'>                   /x9C   <U015B> LATIN SMALL LETTER S WITH ACUTE
       
 19264 <t<>                   /x9D   <U0165> LATIN SMALL LETTER T WITH CARON
       
 19265 <z<>                   /x9E   <U017E> LATIN SMALL LETTER Z WITH CARON
       
 19266 <z'>                   /x9F   <U017A> LATIN SMALL LETTER Z WITH ACUTE
       
 19267 <NS>                   /xA0   <U00A0> NO-BREAK SPACE
       
 19268 <'<>                   /xA1   <U02C7> CARON (Mandarin Chinese third tone)
       
 19269 <'(>                   /xA2   <U02D8> BREVE
       
 19270 <L//>                  /xA3   <U0141> LATIN CAPITAL LETTER L WITH STROKE
       
 19271 <Cu>                   /xA4   <U00A4> CURRENCY SIGN
       
 19272 <A;>                   /xA5   <U0104> LATIN CAPITAL LETTER A WITH OGONEK
       
 19273 <BB>                   /xA6   <U00A6> BROKEN BAR
       
 19274 <SE>                   /xA7   <U00A7> SECTION SIGN
       
 19275 <':>                   /xA8   <U00A8> DIAERESIS
       
 19276 <Co>                   /xA9   <U00A9> COPYRIGHT SIGN
       
 19277 <S,>                   /xAA   <U015E> LATIN CAPITAL LETTER S WITH CEDILLA
       
 19278 <<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 19279 <NO>                   /xAC   <U00AC> NOT SIGN
       
 19280 <-->                   /xAD   <U00AD> SOFT HYPHEN
       
 19281 <Rg>                   /xAE   <U00AE> REGISTERED SIGN
       
 19282 <Z.>                   /xAF   <U017B> LATIN CAPITAL LETTER Z WITH DOT ABOVE
       
 19283 <DG>                   /xB0   <U00B0> DEGREE SIGN
       
 19284 <+->                   /xB1   <U00B1> PLUS-MINUS SIGN
       
 19285 <';>                   /xB2   <U02DB> OGONEK
       
 19286 <l//>                  /xB3   <U0142> LATIN SMALL LETTER L WITH STROKE
       
 19287 <''>                   /xB4   <U00B4> ACUTE ACCENT
       
 19288 <My>                   /xB5   <U00B5> MICRO SIGN
       
 19289 <PI>                   /xB6   <U00B6> PILCROW SIGN
       
 19290 <.M>                   /xB7   <U00B7> MIDDLE DOT
       
 19291 <',>                   /xB8   <U00B8> CEDILLA
       
 19292 <a;>                   /xB9   <U0105> LATIN SMALL LETTER A WITH OGONEK
       
 19293 <s,>                   /xBA   <U015F> LATIN SMALL LETTER S WITH CEDILLA
       
 19294 </>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 19295 <L<>                   /xBC   <U013D> LATIN CAPITAL LETTER L WITH CARON
       
 19296 <''>                   /xBD   <U02DD> DOUBLE ACUTE ACCENT
       
 19297 <l<>                   /xBE   <U013E> LATIN SMALL LETTER L WITH CARON
       
 19298 <z.>                   /xBF   <U017C> LATIN SMALL LETTER Z WITH DOT ABOVE
       
 19299 <R'>                   /xC0   <U0154> LATIN CAPITAL LETTER R WITH ACUTE
       
 19300 <A'>                   /xC1   <U00C1> LATIN CAPITAL LETTER A WITH ACUTE
       
 19301 <A/>>                  /xC2   <U00C2> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
       
 19302 <A(>                   /xC3   <U0102> LATIN CAPITAL LETTER A WITH BREVE
       
 19303 <A:>                   /xC4   <U00C4> LATIN CAPITAL LETTER A WITH DIAERESIS
       
 19304 <L'>                   /xC5   <U0139> LATIN CAPITAL LETTER L WITH ACUTE
       
 19305 <C'>                   /xC6   <U0106> LATIN CAPITAL LETTER C WITH ACUTE
       
 19306 <C,>                   /xC7   <U00C7> LATIN CAPITAL LETTER C WITH CEDILLA
       
 19307 <C<>                   /xC8   <U010C> LATIN CAPITAL LETTER C WITH CARON
       
 19308 <E'>                   /xC9   <U00C9> LATIN CAPITAL LETTER E WITH ACUTE
       
 19309 <E;>                   /xCA   <U0118> LATIN CAPITAL LETTER E WITH OGONEK
       
 19310 <E:>                   /xCB   <U00CB> LATIN CAPITAL LETTER E WITH DIAERESIS
       
 19311 <E<>                   /xCC   <U011A> LATIN CAPITAL LETTER E WITH CARON
       
 19312 <I'>                   /xCD   <U00CD> LATIN CAPITAL LETTER I WITH ACUTE
       
 19313 <I/>>                  /xCE   <U00CE> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
       
 19314 <D<>                   /xCF   <U010E> LATIN CAPITAL LETTER D WITH CARON
       
 19315 <D//>                  /xD0   <U0110> LATIN CAPITAL LETTER D WITH STROKE
       
 19316 <N'>                   /xD1   <U0143> LATIN CAPITAL LETTER N WITH ACUTE
       
 19317 <N<>                   /xD2   <U0147> LATIN CAPITAL LETTER N WITH CARON
       
 19318 <O'>                   /xD3   <U00D3> LATIN CAPITAL LETTER O WITH ACUTE
       
 19319 <O/>>                  /xD4   <U00D4> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
       
 19320 <O'>                   /xD5   <U0150> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
       
 19321 <O:>                   /xD6   <U00D6> LATIN CAPITAL LETTER O WITH DIAERESIS
       
 19322 <*X>                   /xD7   <U00D7> MULTIPLICATION SIGN
       
 19323 <R<>                   /xD8   <U0158> LATIN CAPITAL LETTER R WITH CARON
       
 19324 <U0>                   /xD9   <U016E> LATIN CAPITAL LETTER U WITH RING ABOVE
       
 19325 <U'>                   /xDA   <U00DA> LATIN CAPITAL LETTER U WITH ACUTE
       
 19326 <U'>                   /xDB   <U0170> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
       
 19327 <U:>                   /xDC   <U00DC> LATIN CAPITAL LETTER U WITH DIAERESIS
       
 19328 <Y'>                   /xDD   <U00DD> LATIN CAPITAL LETTER Y WITH ACUTE
       
 19329 <T,>                   /xDE   <U0162> LATIN CAPITAL LETTER T WITH CEDILLA
       
 19330 <ss>                   /xDF   <U00DF> LATIN SMALL LETTER SHARP S (German)
       
 19331 <r'>                   /xE0   <U0155> LATIN SMALL LETTER R WITH ACUTE
       
 19332 <a'>                   /xE1   <U00E1> LATIN SMALL LETTER A WITH ACUTE
       
 19333 <a/>>                  /xE2   <U00E2> LATIN SMALL LETTER A WITH CIRCUMFLEX
       
 19334 <a(>                   /xE3   <U0103> LATIN SMALL LETTER A WITH BREVE
       
 19335 <a:>                   /xE4   <U00E4> LATIN SMALL LETTER A WITH DIAERESIS
       
 19336 <l'>                   /xE5   <U013A> LATIN SMALL LETTER L WITH ACUTE
       
 19337 <c'>                   /xE6   <U0107> LATIN SMALL LETTER C WITH ACUTE
       
 19338 <c,>                   /xE7   <U00E7> LATIN SMALL LETTER C WITH CEDILLA
       
 19339 <c<>                   /xE8   <U010D> LATIN SMALL LETTER C WITH CARON
       
 19340 <e'>                   /xE9   <U00E9> LATIN SMALL LETTER E WITH ACUTE
       
 19341 <e;>                   /xEA   <U0119> LATIN SMALL LETTER E WITH OGONEK
       
 19342 <e:>                   /xEB   <U00EB> LATIN SMALL LETTER E WITH DIAERESIS
       
 19343 <e<>                   /xEC   <U011B> LATIN SMALL LETTER E WITH CARON
       
 19344 <i'>                   /xED   <U00ED> LATIN SMALL LETTER I WITH ACUTE
       
 19345 <i/>>                  /xEE   <U00EE> LATIN SMALL LETTER I WITH CIRCUMFLEX
       
 19346 <d<>                   /xEF   <U010F> LATIN SMALL LETTER D WITH CARON
       
 19347 <d//>                  /xF0   <U0111> LATIN SMALL LETTER D WITH STROKE
       
 19348 <n'>                   /xF1   <U0144> LATIN SMALL LETTER N WITH ACUTE
       
 19349 <n<>                   /xF2   <U0148> LATIN SMALL LETTER N WITH CARON
       
 19350 <o'>                   /xF3   <U00F3> LATIN SMALL LETTER O WITH ACUTE
       
 19351 <o/>>                  /xF4   <U00F4> LATIN SMALL LETTER O WITH CIRCUMFLEX
       
 19352 <o'>                   /xF5   <U0151> LATIN SMALL LETTER O WITH DOUBLE ACUTE
       
 19353 <o:>                   /xF6   <U00F6> LATIN SMALL LETTER O WITH DIAERESIS
       
 19354 <-:>                   /xF7   <U00F7> DIVISION SIGN
       
 19355 <r<>                   /xF8   <U0159> LATIN SMALL LETTER R WITH CARON
       
 19356 <u0>                   /xF9   <U016F> LATIN SMALL LETTER U WITH RING ABOVE
       
 19357 <u'>                   /xFA   <U00FA> LATIN SMALL LETTER U WITH ACUTE
       
 19358 <u'>                   /xFB   <U0171> LATIN SMALL LETTER U WITH DOUBLE ACUTE
       
 19359 <u:>                   /xFC   <U00FC> LATIN SMALL LETTER U WITH DIAERESIS
       
 19360 <y'>                   /xFD   <U00FD> LATIN SMALL LETTER Y WITH ACUTE
       
 19361 <t,>                   /xFE   <U0163> LATIN SMALL LETTER T WITH CEDILLA
       
 19362 <'.>                   /xFF   <U02D9> DOT ABOVE (Mandarin Chinese light tone)
       
 19363 <NUL>                  /x00   <U0000> NUL
       
 19364 <SOH>                  /x01   <U0001> START OF HEADING (SOH)
       
 19365 <STX>                  /x02   <U0002> START OF TEXT (STX)
       
 19366 <ETX>                  /x03   <U0003> END OF TEXT (ETX)
       
 19367 <EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
       
 19368 <ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
       
 19369 <ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
       
 19370 <alert>                /x07   <U0007> BELL (BEL)
       
 19371 <BEL>                  /x07   <U0007> BELL (BEL)
       
 19372 <backspace>            /x08   <U0008> BACKSPACE (BS)
       
 19373 <tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
       
 19374 <newline>              /x0A   <U000A> LINE FEED (LF)
       
 19375 <vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
       
 19376 <form-feed>            /x0C   <U000C> FORM FEED (FF)
       
 19377 <carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
       
 19378 <DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
       
 19379 <DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
       
 19380 <DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
       
 19381 <DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
       
 19382 <DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
       
 19383 <NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
       
 19384 <SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
       
 19385 <ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
       
 19386 <CAN>                  /x18   <U0018> CANCEL (CAN)
       
 19387 <SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
       
 19388 <ESC>                  /x1B   <U001B> ESCAPE (ESC)
       
 19389 <IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
       
 19390 <IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 19391 <intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 19392 <IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
       
 19393 <IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
       
 19394 <DEL>                  /x7F   <U007F> DELETE (DEL)
       
 19395 <space>                /x20   <U0020> SPACE
       
 19396 <exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
       
 19397 <quotation-mark>       /x22   <U0022> QUOTATION MARK
       
 19398 <number-sign>          /x23   <U0023> NUMBER SIGN
       
 19399 <dollar-sign>          /x24   <U0024> DOLLAR SIGN
       
 19400 <percent-sign>         /x25   <U0025> PERCENT SIGN
       
 19401 <ampersand>            /x26   <U0026> AMPERSAND
       
 19402 <apostrophe>           /x27   <U0027> APOSTROPHE
       
 19403 <left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
       
 19404 <right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
       
 19405 <asterisk>             /x2A   <U002A> ASTERISK
       
 19406 <plus-sign>            /x2B   <U002B> PLUS SIGN
       
 19407 <comma>                /x2C   <U002C> COMMA
       
 19408 <hyphen>               /x2D   <U002D> HYPHEN-MINUS
       
 19409 <hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
       
 19410 <period>               /x2E   <U002E> FULL STOP
       
 19411 <full-stop>            /x2E   <U002E> FULL STOP
       
 19412 <slash>                /x2F   <U002F> SOLIDUS
       
 19413 <solidus>              /x2F   <U002F> SOLIDUS
       
 19414 <zero>                 /x30   <U0030> DIGIT ZERO
       
 19415 <one>                  /x31   <U0031> DIGIT ONE
       
 19416 <two>                  /x32   <U0032> DIGIT TWO
       
 19417 <three>                /x33   <U0033> DIGIT THREE
       
 19418 <four>                 /x34   <U0034> DIGIT FOUR
       
 19419 <five>                 /x35   <U0035> DIGIT FIVE
       
 19420 <six>                  /x36   <U0036> DIGIT SIX
       
 19421 <seven>                /x37   <U0037> DIGIT SEVEN
       
 19422 <eight>                /x38   <U0038> DIGIT EIGHT
       
 19423 <nine>                 /x39   <U0039> DIGIT NINE
       
 19424 <colon>                /x3A   <U003A> COLON
       
 19425 <semicolon>            /x3B   <U003B> SEMICOLON
       
 19426 <less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
       
 19427 <equals-sign>          /x3D   <U003D> EQUALS SIGN
       
 19428 <greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
       
 19429 <question-mark>        /x3F   <U003F> QUESTION MARK
       
 19430 <commercial-at>        /x40   <U0040> COMMERCIAL AT
       
 19431 <left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
       
 19432 <backslash>            /x5C   <U005C> REVERSE SOLIDUS
       
 19433 <reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
       
 19434 <right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
       
 19435 <circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
       
 19436 <circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
       
 19437 <underscore>           /x5F   <U005F> LOW LINE
       
 19438 <low-line>             /x5F   <U005F> LOW LINE
       
 19439 <grave-accent>         /x60   <U0060> GRAVE ACCENT
       
 19440 <left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
       
 19441 <left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
       
 19442 <vertical-line>        /x7C   <U007C> VERTICAL LINE
       
 19443 <right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
       
 19444 <right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
       
 19445 <tilde>                /x7E   <U007E> TILDE
       
 19446 END CHARMAP
       
 19447 
       
 19448 "
       
 19449 !
       
 19450 
 18536 mappingURL2_relativePathName
 19451 mappingURL2_relativePathName
 18537     ^ 'CP1250'
 19452     ^ 'CP1250'
 18538 ! !
 19453 ! !
 18539 
 19454 
 18540 !CharacterEncoder::MS_EastEuropean class methodsFor:'queries'!
 19455 !CharacterEncoder::MS_EastEuropean class methodsFor:'queries'!
 18543     ^ #( 'ms-easteuropean' 'ms-ee' 'cp1250' 'ms-cp1250' )
 19458     ^ #( 'ms-easteuropean' 'ms-ee' 'cp1250' 'ms-cp1250' )
 18544 ! !
 19459 ! !
 18545 
 19460 
 18546 !CharacterEncoder::MS_Greek class methodsFor:'mapping'!
 19461 !CharacterEncoder::MS_Greek class methodsFor:'mapping'!
 18547 
 19462 
       
 19463 mapping
       
 19464 "
       
 19465 # From: http://std.dkuug.dk/i18n/charmaps/CP1253
       
 19466 
       
 19467 <code_set_name> CP1253
       
 19468 <comment_char> %
       
 19469 <escape_char> /
       
 19470 % version: 1.0
       
 19471 % repertoiremap: mnemonic,ds
       
 19472 %  source: UNICODE 1.0
       
 19473 
       
 19474 % alias MS-GREEK
       
 19475 CHARMAP
       
 19476 <NU>                   /x00   <U0000> NULL (NUL)
       
 19477 <SH>                   /x01   <U0001> START OF HEADING (SOH)
       
 19478 <SX>                   /x02   <U0002> START OF TEXT (STX)
       
 19479 <EX>                   /x03   <U0003> END OF TEXT (ETX)
       
 19480 <ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
       
 19481 <EQ>                   /x05   <U0005> ENQUIRY (ENQ)
       
 19482 <AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
       
 19483 <BL>                   /x07   <U0007> BELL (BEL)
       
 19484 <BS>                   /x08   <U0008> BACKSPACE (BS)
       
 19485 <HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
       
 19486 <LF>                   /x0A   <U000A> LINE FEED (LF)
       
 19487 <VT>                   /x0B   <U000B> LINE TABULATION (VT)
       
 19488 <FF>                   /x0C   <U000C> FORM FEED (FF)
       
 19489 <CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
       
 19490 <SO>                   /x0E   <U000E> SHIFT OUT (SO)
       
 19491 <SI>                   /x0F   <U000F> SHIFT IN (SI)
       
 19492 <DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
       
 19493 <D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
       
 19494 <D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
       
 19495 <D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
       
 19496 <D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
       
 19497 <NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
       
 19498 <SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
       
 19499 <EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
       
 19500 <CN>                   /x18   <U0018> CANCEL (CAN)
       
 19501 <EM>                   /x19   <U0019> END OF MEDIUM (EM)
       
 19502 <SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
       
 19503 <EC>                   /x1B   <U001B> ESCAPE (ESC)
       
 19504 <FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
       
 19505 <GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 19506 <RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
       
 19507 <US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
       
 19508 <SP>                   /x20   <U0020> SPACE
       
 19509 <!!>                    /x21   <U0021> EXCLAMATION MARK
       
 19510 <'>                    /x22   <U0022> QUOTATION MARK
       
 19511 <Nb>                   /x23   <U0023> NUMBER SIGN
       
 19512 <DO>                   /x24   <U0024> DOLLAR SIGN
       
 19513 <%>                    /x25   <U0025> PERCENT SIGN
       
 19514 <&>                    /x26   <U0026> AMPERSAND
       
 19515 <'>                    /x27   <U0027> APOSTROPHE
       
 19516 <(>                    /x28   <U0028> LEFT PARENTHESIS
       
 19517 <)>                    /x29   <U0029> RIGHT PARENTHESIS
       
 19518 <*>                    /x2A   <U002A> ASTERISK
       
 19519 <+>                    /x2B   <U002B> PLUS SIGN
       
 19520 <,>                    /x2C   <U002C> COMMA
       
 19521 <->                    /x2D   <U002D> HYPHEN-MINUS
       
 19522 <.>                    /x2E   <U002E> FULL STOP
       
 19523 <//>                   /x2F   <U002F> SOLIDUS
       
 19524 <0>                    /x30   <U0030> DIGIT ZERO
       
 19525 <1>                    /x31   <U0031> DIGIT ONE
       
 19526 <2>                    /x32   <U0032> DIGIT TWO
       
 19527 <3>                    /x33   <U0033> DIGIT THREE
       
 19528 <4>                    /x34   <U0034> DIGIT FOUR
       
 19529 <5>                    /x35   <U0035> DIGIT FIVE
       
 19530 <6>                    /x36   <U0036> DIGIT SIX
       
 19531 <7>                    /x37   <U0037> DIGIT SEVEN
       
 19532 <8>                    /x38   <U0038> DIGIT EIGHT
       
 19533 <9>                    /x39   <U0039> DIGIT NINE
       
 19534 <:>                    /x3A   <U003A> COLON
       
 19535 <;>                    /x3B   <U003B> SEMICOLON
       
 19536 <<>                    /x3C   <U003C> LESS-THAN SIGN
       
 19537 <=>                    /x3D   <U003D> EQUALS SIGN
       
 19538 </>>                   /x3E   <U003E> GREATER-THAN SIGN
       
 19539 <?>                    /x3F   <U003F> QUESTION MARK
       
 19540 <At>                   /x40   <U0040> COMMERCIAL AT
       
 19541 <A>                    /x41   <U0041> LATIN CAPITAL LETTER A
       
 19542 <B>                    /x42   <U0042> LATIN CAPITAL LETTER B
       
 19543 <C>                    /x43   <U0043> LATIN CAPITAL LETTER C
       
 19544 <D>                    /x44   <U0044> LATIN CAPITAL LETTER D
       
 19545 <E>                    /x45   <U0045> LATIN CAPITAL LETTER E
       
 19546 <F>                    /x46   <U0046> LATIN CAPITAL LETTER F
       
 19547 <G>                    /x47   <U0047> LATIN CAPITAL LETTER G
       
 19548 <H>                    /x48   <U0048> LATIN CAPITAL LETTER H
       
 19549 <I>                    /x49   <U0049> LATIN CAPITAL LETTER I
       
 19550 <J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
       
 19551 <K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
       
 19552 <L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
       
 19553 <M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
       
 19554 <N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
       
 19555 <O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
       
 19556 <P>                    /x50   <U0050> LATIN CAPITAL LETTER P
       
 19557 <Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
       
 19558 <R>                    /x52   <U0052> LATIN CAPITAL LETTER R
       
 19559 <S>                    /x53   <U0053> LATIN CAPITAL LETTER S
       
 19560 <T>                    /x54   <U0054> LATIN CAPITAL LETTER T
       
 19561 <U>                    /x55   <U0055> LATIN CAPITAL LETTER U
       
 19562 <V>                    /x56   <U0056> LATIN CAPITAL LETTER V
       
 19563 <W>                    /x57   <U0057> LATIN CAPITAL LETTER W
       
 19564 <X>                    /x58   <U0058> LATIN CAPITAL LETTER X
       
 19565 <Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
       
 19566 <Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
       
 19567 <<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
       
 19568 <////>                 /x5C   <U005C> REVERSE SOLIDUS
       
 19569 <)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
       
 19570 <'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
       
 19571 <_>                    /x5F   <U005F> LOW LINE
       
 19572 <'!!>                   /x60   <U0060> GRAVE ACCENT
       
 19573 <a>                    /x61   <U0061> LATIN SMALL LETTER A
       
 19574 <b>                    /x62   <U0062> LATIN SMALL LETTER B
       
 19575 <c>                    /x63   <U0063> LATIN SMALL LETTER C
       
 19576 <d>                    /x64   <U0064> LATIN SMALL LETTER D
       
 19577 <e>                    /x65   <U0065> LATIN SMALL LETTER E
       
 19578 <f>                    /x66   <U0066> LATIN SMALL LETTER F
       
 19579 <g>                    /x67   <U0067> LATIN SMALL LETTER G
       
 19580 <h>                    /x68   <U0068> LATIN SMALL LETTER H
       
 19581 <i>                    /x69   <U0069> LATIN SMALL LETTER I
       
 19582 <j>                    /x6A   <U006A> LATIN SMALL LETTER J
       
 19583 <k>                    /x6B   <U006B> LATIN SMALL LETTER K
       
 19584 <l>                    /x6C   <U006C> LATIN SMALL LETTER L
       
 19585 <m>                    /x6D   <U006D> LATIN SMALL LETTER M
       
 19586 <n>                    /x6E   <U006E> LATIN SMALL LETTER N
       
 19587 <o>                    /x6F   <U006F> LATIN SMALL LETTER O
       
 19588 <p>                    /x70   <U0070> LATIN SMALL LETTER P
       
 19589 <q>                    /x71   <U0071> LATIN SMALL LETTER Q
       
 19590 <r>                    /x72   <U0072> LATIN SMALL LETTER R
       
 19591 <s>                    /x73   <U0073> LATIN SMALL LETTER S
       
 19592 <t>                    /x74   <U0074> LATIN SMALL LETTER T
       
 19593 <u>                    /x75   <U0075> LATIN SMALL LETTER U
       
 19594 <v>                    /x76   <U0076> LATIN SMALL LETTER V
       
 19595 <w>                    /x77   <U0077> LATIN SMALL LETTER W
       
 19596 <x>                    /x78   <U0078> LATIN SMALL LETTER X
       
 19597 <y>                    /x79   <U0079> LATIN SMALL LETTER Y
       
 19598 <z>                    /x7A   <U007A> LATIN SMALL LETTER Z
       
 19599 <(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
       
 19600 <!!!!>                   /x7C   <U007C> VERTICAL LINE
       
 19601 <!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
       
 19602 <'?>                   /x7E   <U007E> TILDE
       
 19603 <DT>                   /x7F   <U007F> DELETE (DEL)
       
 19604 <.9>                   /x82   <U201A> SINGLE LOW-9 QUOTATION MARK
       
 19605 <f2>                   /x83   <U0192> LATIN SMALL LETTER F WITH HOOK
       
 19606 <:9>                   /x84   <U201E> DOUBLE LOW-9 QUOTATION MARK
       
 19607 <.3>                   /x85   <U2026> HORIZONTAL ELLIPSIS
       
 19608 <//->                  /x86   <U2020> DAGGER
       
 19609 <//=>                  /x87   <U2021> DOUBLE DAGGER
       
 19610 <%0>                   /x89   <U2030> PER MILLE SIGN
       
 19611 <<1>                   /x8B   <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
       
 19612 <'6>                   /x91   <U2018> LEFT SINGLE QUOTATION MARK
       
 19613 <'9>                   /x92   <U2019> RIGHT SINGLE QUOTATION MARK
       
 19614 <'6>                   /x93   <U201C> LEFT DOUBLE QUOTATION MARK
       
 19615 <'9>                   /x94   <U201D> RIGHT DOUBLE QUOTATION MARK
       
 19616 <sb>                   /x95   <U2022> BULLET
       
 19617 <-N>                   /x96   <U2013> EN DASH
       
 19618 <-M>                   /x97   <U2014> EM DASH
       
 19619 <TM>                   /x99   <U2122> TRADE MARK SIGN
       
 19620 </>1>                  /x9B   <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
       
 19621 <NS>                   /xA0   <U00A0> NO-BREAK SPACE
       
 19622 <'%>                   /xA1   <U0385> GREEK DIALYTIKA TONOS
       
 19623 <A%>                   /xA2   <U0386> GREEK CAPITAL LETTER ALPHA WITH TONOS
       
 19624 <Pd>                   /xA3   <U00A3> POUND SIGN
       
 19625 <Cu>                   /xA4   <U00A4> CURRENCY SIGN
       
 19626 <Ye>                   /xA5   <U00A5> YEN SIGN
       
 19627 <BB>                   /xA6   <U00A6> BROKEN BAR
       
 19628 <SE>                   /xA7   <U00A7> SECTION SIGN
       
 19629 <':>                   /xA8   <U00A8> DIAERESIS
       
 19630 <Co>                   /xA9   <U00A9> COPYRIGHT SIGN
       
 19631 <<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 19632 <NO>                   /xAC   <U00AC> NOT SIGN
       
 19633 <-->                   /xAD   <U00AD> SOFT HYPHEN
       
 19634 <Rg>                   /xAE   <U00AE> REGISTERED SIGN
       
 19635 <-3>                   /xAF   <U2015> HORIZONTAL BAR
       
 19636 <DG>                   /xB0   <U00B0> DEGREE SIGN
       
 19637 <+->                   /xB1   <U00B1> PLUS-MINUS SIGN
       
 19638 <2S>                   /xB2   <U00B2> SUPERSCRIPT TWO
       
 19639 <3S>                   /xB3   <U00B3> SUPERSCRIPT THREE
       
 19640 <'*>                   /xB4   <U0384> GREEK TONOS
       
 19641 <My>                   /xB5   <U00B5> MICRO SIGN
       
 19642 <PI>                   /xB6   <U00B6> PILCROW SIGN
       
 19643 <.M>                   /xB7   <U00B7> MIDDLE DOT
       
 19644 <E%>                   /xB8   <U0388> GREEK CAPITAL LETTER EPSILON WITH TONOS
       
 19645 <Y%>                   /xB9   <U0389> GREEK CAPITAL LETTER ETA WITH TONOS
       
 19646 <I%>                   /xBA   <U038A> GREEK CAPITAL LETTER IOTA WITH TONOS
       
 19647 </>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 19648 <O%>                   /xBC   <U038C> GREEK CAPITAL LETTER OMICRON WITH TONOS
       
 19649 <12>                   /xBD   <U00BD> VULGAR FRACTION ONE HALF
       
 19650 <U%>                   /xBE   <U038E> GREEK CAPITAL LETTER UPSILON WITH TONOS
       
 19651 <W%>                   /xBF   <U038F> GREEK CAPITAL LETTER OMEGA WITH TONOS
       
 19652 <i3>                   /xC0   <U0390> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
       
 19653 <A*>                   /xC1   <U0391> GREEK CAPITAL LETTER ALPHA
       
 19654 <B*>                   /xC2   <U0392> GREEK CAPITAL LETTER BETA
       
 19655 <G*>                   /xC3   <U0393> GREEK CAPITAL LETTER GAMMA
       
 19656 <D*>                   /xC4   <U0394> GREEK CAPITAL LETTER DELTA
       
 19657 <E*>                   /xC5   <U0395> GREEK CAPITAL LETTER EPSILON
       
 19658 <Z*>                   /xC6   <U0396> GREEK CAPITAL LETTER ZETA
       
 19659 <Y*>                   /xC7   <U0397> GREEK CAPITAL LETTER ETA
       
 19660 <H*>                   /xC8   <U0398> GREEK CAPITAL LETTER THETA
       
 19661 <I*>                   /xC9   <U0399> GREEK CAPITAL LETTER IOTA
       
 19662 <K*>                   /xCA   <U039A> GREEK CAPITAL LETTER KAPPA
       
 19663 <L*>                   /xCB   <U039B> GREEK CAPITAL LETTER LAMDA
       
 19664 <M*>                   /xCC   <U039C> GREEK CAPITAL LETTER MU
       
 19665 <N*>                   /xCD   <U039D> GREEK CAPITAL LETTER NU
       
 19666 <C*>                   /xCE   <U039E> GREEK CAPITAL LETTER XI
       
 19667 <O*>                   /xCF   <U039F> GREEK CAPITAL LETTER OMICRON
       
 19668 <P*>                   /xD0   <U03A0> GREEK CAPITAL LETTER PI
       
 19669 <R*>                   /xD1   <U03A1> GREEK CAPITAL LETTER RHO
       
 19670 <S*>                   /xD3   <U03A3> GREEK CAPITAL LETTER SIGMA
       
 19671 <T*>                   /xD4   <U03A4> GREEK CAPITAL LETTER TAU
       
 19672 <U*>                   /xD5   <U03A5> GREEK CAPITAL LETTER UPSILON
       
 19673 <F*>                   /xD6   <U03A6> GREEK CAPITAL LETTER PHI
       
 19674 <X*>                   /xD7   <U03A7> GREEK CAPITAL LETTER CHI
       
 19675 <Q*>                   /xD8   <U03A8> GREEK CAPITAL LETTER PSI
       
 19676 <W*>                   /xD9   <U03A9> GREEK CAPITAL LETTER OMEGA
       
 19677 <J*>                   /xDA   <U03AA> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
       
 19678 <V*>                   /xDB   <U03AB> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
       
 19679 <a%>                   /xDC   <U03AC> GREEK SMALL LETTER ALPHA WITH TONOS
       
 19680 <e%>                   /xDD   <U03AD> GREEK SMALL LETTER EPSILON WITH TONOS
       
 19681 <y%>                   /xDE   <U03AE> GREEK SMALL LETTER ETA WITH TONOS
       
 19682 <i%>                   /xDF   <U03AF> GREEK SMALL LETTER IOTA WITH TONOS
       
 19683 <u3>                   /xE0   <U03B0> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
       
 19684 <a*>                   /xE1   <U03B1> GREEK SMALL LETTER ALPHA
       
 19685 <b*>                   /xE2   <U03B2> GREEK SMALL LETTER BETA
       
 19686 <g*>                   /xE3   <U03B3> GREEK SMALL LETTER GAMMA
       
 19687 <d*>                   /xE4   <U03B4> GREEK SMALL LETTER DELTA
       
 19688 <e*>                   /xE5   <U03B5> GREEK SMALL LETTER EPSILON
       
 19689 <z*>                   /xE6   <U03B6> GREEK SMALL LETTER ZETA
       
 19690 <y*>                   /xE7   <U03B7> GREEK SMALL LETTER ETA
       
 19691 <h*>                   /xE8   <U03B8> GREEK SMALL LETTER THETA
       
 19692 <i*>                   /xE9   <U03B9> GREEK SMALL LETTER IOTA
       
 19693 <k*>                   /xEA   <U03BA> GREEK SMALL LETTER KAPPA
       
 19694 <l*>                   /xEB   <U03BB> GREEK SMALL LETTER LAMDA
       
 19695 <m*>                   /xEC   <U03BC> GREEK SMALL LETTER MU
       
 19696 <n*>                   /xED   <U03BD> GREEK SMALL LETTER NU
       
 19697 <c*>                   /xEE   <U03BE> GREEK SMALL LETTER XI
       
 19698 <o*>                   /xEF   <U03BF> GREEK SMALL LETTER OMICRON
       
 19699 <p*>                   /xF0   <U03C0> GREEK SMALL LETTER PI
       
 19700 <r*>                   /xF1   <U03C1> GREEK SMALL LETTER RHO
       
 19701 <*s>                   /xF2   <U03C2> GREEK SMALL LETTER FINAL SIGMA
       
 19702 <s*>                   /xF3   <U03C3> GREEK SMALL LETTER SIGMA
       
 19703 <t*>                   /xF4   <U03C4> GREEK SMALL LETTER TAU
       
 19704 <u*>                   /xF5   <U03C5> GREEK SMALL LETTER UPSILON
       
 19705 <f*>                   /xF6   <U03C6> GREEK SMALL LETTER PHI
       
 19706 <x*>                   /xF7   <U03C7> GREEK SMALL LETTER CHI
       
 19707 <q*>                   /xF8   <U03C8> GREEK SMALL LETTER PSI
       
 19708 <w*>                   /xF9   <U03C9> GREEK SMALL LETTER OMEGA
       
 19709 <j*>                   /xFA   <U03CA> GREEK SMALL LETTER IOTA WITH DIALYTIKA
       
 19710 <v*>                   /xFB   <U03CB> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
       
 19711 <o%>                   /xFC   <U03CC> GREEK SMALL LETTER OMICRON WITH TONOS
       
 19712 <u%>                   /xFD   <U03CD> GREEK SMALL LETTER UPSILON WITH TONOS
       
 19713 <w%>                   /xFE   <U03CE> GREEK SMALL LETTER OMEGA WITH TONOS
       
 19714 <NUL>                  /x00   <U0000> NUL
       
 19715 <SOH>                  /x01   <U0001> START OF HEADING (SOH)
       
 19716 <STX>                  /x02   <U0002> START OF TEXT (STX)
       
 19717 <ETX>                  /x03   <U0003> END OF TEXT (ETX)
       
 19718 <EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
       
 19719 <ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
       
 19720 <ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
       
 19721 <alert>                /x07   <U0007> BELL (BEL)
       
 19722 <BEL>                  /x07   <U0007> BELL (BEL)
       
 19723 <backspace>            /x08   <U0008> BACKSPACE (BS)
       
 19724 <tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
       
 19725 <newline>              /x0A   <U000A> LINE FEED (LF)
       
 19726 <vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
       
 19727 <form-feed>            /x0C   <U000C> FORM FEED (FF)
       
 19728 <carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
       
 19729 <DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
       
 19730 <DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
       
 19731 <DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
       
 19732 <DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
       
 19733 <DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
       
 19734 <NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
       
 19735 <SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
       
 19736 <ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
       
 19737 <CAN>                  /x18   <U0018> CANCEL (CAN)
       
 19738 <SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
       
 19739 <ESC>                  /x1B   <U001B> ESCAPE (ESC)
       
 19740 <IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
       
 19741 <IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 19742 <intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 19743 <IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
       
 19744 <IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
       
 19745 <DEL>                  /x7F   <U007F> DELETE (DEL)
       
 19746 <space>                /x20   <U0020> SPACE
       
 19747 <exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
       
 19748 <quotation-mark>       /x22   <U0022> QUOTATION MARK
       
 19749 <number-sign>          /x23   <U0023> NUMBER SIGN
       
 19750 <dollar-sign>          /x24   <U0024> DOLLAR SIGN
       
 19751 <percent-sign>         /x25   <U0025> PERCENT SIGN
       
 19752 <ampersand>            /x26   <U0026> AMPERSAND
       
 19753 <apostrophe>           /x27   <U0027> APOSTROPHE
       
 19754 <left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
       
 19755 <right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
       
 19756 <asterisk>             /x2A   <U002A> ASTERISK
       
 19757 <plus-sign>            /x2B   <U002B> PLUS SIGN
       
 19758 <comma>                /x2C   <U002C> COMMA
       
 19759 <hyphen>               /x2D   <U002D> HYPHEN-MINUS
       
 19760 <hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
       
 19761 <period>               /x2E   <U002E> FULL STOP
       
 19762 <full-stop>            /x2E   <U002E> FULL STOP
       
 19763 <slash>                /x2F   <U002F> SOLIDUS
       
 19764 <solidus>              /x2F   <U002F> SOLIDUS
       
 19765 <zero>                 /x30   <U0030> DIGIT ZERO
       
 19766 <one>                  /x31   <U0031> DIGIT ONE
       
 19767 <two>                  /x32   <U0032> DIGIT TWO
       
 19768 <three>                /x33   <U0033> DIGIT THREE
       
 19769 <four>                 /x34   <U0034> DIGIT FOUR
       
 19770 <five>                 /x35   <U0035> DIGIT FIVE
       
 19771 <six>                  /x36   <U0036> DIGIT SIX
       
 19772 <seven>                /x37   <U0037> DIGIT SEVEN
       
 19773 <eight>                /x38   <U0038> DIGIT EIGHT
       
 19774 <nine>                 /x39   <U0039> DIGIT NINE
       
 19775 <colon>                /x3A   <U003A> COLON
       
 19776 <semicolon>            /x3B   <U003B> SEMICOLON
       
 19777 <less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
       
 19778 <equals-sign>          /x3D   <U003D> EQUALS SIGN
       
 19779 <greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
       
 19780 <question-mark>        /x3F   <U003F> QUESTION MARK
       
 19781 <commercial-at>        /x40   <U0040> COMMERCIAL AT
       
 19782 <left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
       
 19783 <backslash>            /x5C   <U005C> REVERSE SOLIDUS
       
 19784 <reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
       
 19785 <right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
       
 19786 <circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
       
 19787 <circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
       
 19788 <underscore>           /x5F   <U005F> LOW LINE
       
 19789 <low-line>             /x5F   <U005F> LOW LINE
       
 19790 <grave-accent>         /x60   <U0060> GRAVE ACCENT
       
 19791 <left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
       
 19792 <left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
       
 19793 <vertical-line>        /x7C   <U007C> VERTICAL LINE
       
 19794 <right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
       
 19795 <right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
       
 19796 <tilde>                /x7E   <U007E> TILDE
       
 19797 END CHARMAP
       
 19798 
       
 19799 "
       
 19800 !
       
 19801 
 18548 mappingURL2_relativePathName
 19802 mappingURL2_relativePathName
 18549     ^ 'CP1253'
 19803     ^ 'CP1253'
 18550 ! !
 19804 ! !
 18551 
 19805 
 18552 !CharacterEncoder::MS_Greek class methodsFor:'queries'!
 19806 !CharacterEncoder::MS_Greek class methodsFor:'queries'!
 18554 alternativeNamesOfEncoding
 19808 alternativeNamesOfEncoding
 18555     ^ #( 'ms-greek' 'ms-cp1253' 'cp1253' )
 19809     ^ #( 'ms-greek' 'ms-cp1253' 'cp1253' )
 18556 ! !
 19810 ! !
 18557 
 19811 
 18558 !CharacterEncoder::MS_Hebrew class methodsFor:'mapping'!
 19812 !CharacterEncoder::MS_Hebrew class methodsFor:'mapping'!
       
 19813 
       
 19814 mapping
       
 19815 "
       
 19816 # From: http://std.dkuug.dk/i18n/charmaps/CP1255
       
 19817 
       
 19818 <code_set_name> CP1255
       
 19819 <comment_char> %
       
 19820 <escape_char> /
       
 19821 % version: 1.0
       
 19822 % repertoiremap: mnemonic,ds
       
 19823 %  source: UNICODE 1.0
       
 19824 
       
 19825 % alias MS-HEBR
       
 19826 CHARMAP
       
 19827 <NU>                   /x00   <U0000> NULL (NUL)
       
 19828 <SH>                   /x01   <U0001> START OF HEADING (SOH)
       
 19829 <SX>                   /x02   <U0002> START OF TEXT (STX)
       
 19830 <EX>                   /x03   <U0003> END OF TEXT (ETX)
       
 19831 <ET>                   /x04   <U0004> END OF TRANSMISSION (EOT)
       
 19832 <EQ>                   /x05   <U0005> ENQUIRY (ENQ)
       
 19833 <AK>                   /x06   <U0006> ACKNOWLEDGE (ACK)
       
 19834 <BL>                   /x07   <U0007> BELL (BEL)
       
 19835 <BS>                   /x08   <U0008> BACKSPACE (BS)
       
 19836 <HT>                   /x09   <U0009> CHARACTER TABULATION (HT)
       
 19837 <LF>                   /x0A   <U000A> LINE FEED (LF)
       
 19838 <VT>                   /x0B   <U000B> LINE TABULATION (VT)
       
 19839 <FF>                   /x0C   <U000C> FORM FEED (FF)
       
 19840 <CR>                   /x0D   <U000D> CARRIAGE RETURN (CR)
       
 19841 <SO>                   /x0E   <U000E> SHIFT OUT (SO)
       
 19842 <SI>                   /x0F   <U000F> SHIFT IN (SI)
       
 19843 <DL>                   /x10   <U0010> DATALINK ESCAPE (DLE)
       
 19844 <D1>                   /x11   <U0011> DEVICE CONTROL ONE (DC1)
       
 19845 <D2>                   /x12   <U0012> DEVICE CONTROL TWO (DC2)
       
 19846 <D3>                   /x13   <U0013> DEVICE CONTROL THREE (DC3)
       
 19847 <D4>                   /x14   <U0014> DEVICE CONTROL FOUR (DC4)
       
 19848 <NK>                   /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
       
 19849 <SY>                   /x16   <U0016> SYNCHRONOUS IDLE (SYN)
       
 19850 <EB>                   /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
       
 19851 <CN>                   /x18   <U0018> CANCEL (CAN)
       
 19852 <EM>                   /x19   <U0019> END OF MEDIUM (EM)
       
 19853 <SB>                   /x1A   <U001A> SUBSTITUTE (SUB)
       
 19854 <EC>                   /x1B   <U001B> ESCAPE (ESC)
       
 19855 <FS>                   /x1C   <U001C> FILE SEPARATOR (IS4)
       
 19856 <GS>                   /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 19857 <RS>                   /x1E   <U001E> RECORD SEPARATOR (IS2)
       
 19858 <US>                   /x1F   <U001F> UNIT SEPARATOR (IS1)
       
 19859 <SP>                   /x20   <U0020> SPACE
       
 19860 <!!>                    /x21   <U0021> EXCLAMATION MARK
       
 19861 <'>                    /x22   <U0022> QUOTATION MARK
       
 19862 <Nb>                   /x23   <U0023> NUMBER SIGN
       
 19863 <DO>                   /x24   <U0024> DOLLAR SIGN
       
 19864 <%>                    /x25   <U0025> PERCENT SIGN
       
 19865 <&>                    /x26   <U0026> AMPERSAND
       
 19866 <'>                    /x27   <U0027> APOSTROPHE
       
 19867 <(>                    /x28   <U0028> LEFT PARENTHESIS
       
 19868 <)>                    /x29   <U0029> RIGHT PARENTHESIS
       
 19869 <*>                    /x2A   <U002A> ASTERISK
       
 19870 <+>                    /x2B   <U002B> PLUS SIGN
       
 19871 <,>                    /x2C   <U002C> COMMA
       
 19872 <->                    /x2D   <U002D> HYPHEN-MINUS
       
 19873 <.>                    /x2E   <U002E> FULL STOP
       
 19874 <//>                   /x2F   <U002F> SOLIDUS
       
 19875 <0>                    /x30   <U0030> DIGIT ZERO
       
 19876 <1>                    /x31   <U0031> DIGIT ONE
       
 19877 <2>                    /x32   <U0032> DIGIT TWO
       
 19878 <3>                    /x33   <U0033> DIGIT THREE
       
 19879 <4>                    /x34   <U0034> DIGIT FOUR
       
 19880 <5>                    /x35   <U0035> DIGIT FIVE
       
 19881 <6>                    /x36   <U0036> DIGIT SIX
       
 19882 <7>                    /x37   <U0037> DIGIT SEVEN
       
 19883 <8>                    /x38   <U0038> DIGIT EIGHT
       
 19884 <9>                    /x39   <U0039> DIGIT NINE
       
 19885 <:>                    /x3A   <U003A> COLON
       
 19886 <;>                    /x3B   <U003B> SEMICOLON
       
 19887 <<>                    /x3C   <U003C> LESS-THAN SIGN
       
 19888 <=>                    /x3D   <U003D> EQUALS SIGN
       
 19889 </>>                   /x3E   <U003E> GREATER-THAN SIGN
       
 19890 <?>                    /x3F   <U003F> QUESTION MARK
       
 19891 <At>                   /x40   <U0040> COMMERCIAL AT
       
 19892 <A>                    /x41   <U0041> LATIN CAPITAL LETTER A
       
 19893 <B>                    /x42   <U0042> LATIN CAPITAL LETTER B
       
 19894 <C>                    /x43   <U0043> LATIN CAPITAL LETTER C
       
 19895 <D>                    /x44   <U0044> LATIN CAPITAL LETTER D
       
 19896 <E>                    /x45   <U0045> LATIN CAPITAL LETTER E
       
 19897 <F>                    /x46   <U0046> LATIN CAPITAL LETTER F
       
 19898 <G>                    /x47   <U0047> LATIN CAPITAL LETTER G
       
 19899 <H>                    /x48   <U0048> LATIN CAPITAL LETTER H
       
 19900 <I>                    /x49   <U0049> LATIN CAPITAL LETTER I
       
 19901 <J>                    /x4A   <U004A> LATIN CAPITAL LETTER J
       
 19902 <K>                    /x4B   <U004B> LATIN CAPITAL LETTER K
       
 19903 <L>                    /x4C   <U004C> LATIN CAPITAL LETTER L
       
 19904 <M>                    /x4D   <U004D> LATIN CAPITAL LETTER M
       
 19905 <N>                    /x4E   <U004E> LATIN CAPITAL LETTER N
       
 19906 <O>                    /x4F   <U004F> LATIN CAPITAL LETTER O
       
 19907 <P>                    /x50   <U0050> LATIN CAPITAL LETTER P
       
 19908 <Q>                    /x51   <U0051> LATIN CAPITAL LETTER Q
       
 19909 <R>                    /x52   <U0052> LATIN CAPITAL LETTER R
       
 19910 <S>                    /x53   <U0053> LATIN CAPITAL LETTER S
       
 19911 <T>                    /x54   <U0054> LATIN CAPITAL LETTER T
       
 19912 <U>                    /x55   <U0055> LATIN CAPITAL LETTER U
       
 19913 <V>                    /x56   <U0056> LATIN CAPITAL LETTER V
       
 19914 <W>                    /x57   <U0057> LATIN CAPITAL LETTER W
       
 19915 <X>                    /x58   <U0058> LATIN CAPITAL LETTER X
       
 19916 <Y>                    /x59   <U0059> LATIN CAPITAL LETTER Y
       
 19917 <Z>                    /x5A   <U005A> LATIN CAPITAL LETTER Z
       
 19918 <<(>                   /x5B   <U005B> LEFT SQUARE BRACKET
       
 19919 <////>                 /x5C   <U005C> REVERSE SOLIDUS
       
 19920 <)/>>                  /x5D   <U005D> RIGHT SQUARE BRACKET
       
 19921 <'/>>                  /x5E   <U005E> CIRCUMFLEX ACCENT
       
 19922 <_>                    /x5F   <U005F> LOW LINE
       
 19923 <'!!>                   /x60   <U0060> GRAVE ACCENT
       
 19924 <a>                    /x61   <U0061> LATIN SMALL LETTER A
       
 19925 <b>                    /x62   <U0062> LATIN SMALL LETTER B
       
 19926 <c>                    /x63   <U0063> LATIN SMALL LETTER C
       
 19927 <d>                    /x64   <U0064> LATIN SMALL LETTER D
       
 19928 <e>                    /x65   <U0065> LATIN SMALL LETTER E
       
 19929 <f>                    /x66   <U0066> LATIN SMALL LETTER F
       
 19930 <g>                    /x67   <U0067> LATIN SMALL LETTER G
       
 19931 <h>                    /x68   <U0068> LATIN SMALL LETTER H
       
 19932 <i>                    /x69   <U0069> LATIN SMALL LETTER I
       
 19933 <j>                    /x6A   <U006A> LATIN SMALL LETTER J
       
 19934 <k>                    /x6B   <U006B> LATIN SMALL LETTER K
       
 19935 <l>                    /x6C   <U006C> LATIN SMALL LETTER L
       
 19936 <m>                    /x6D   <U006D> LATIN SMALL LETTER M
       
 19937 <n>                    /x6E   <U006E> LATIN SMALL LETTER N
       
 19938 <o>                    /x6F   <U006F> LATIN SMALL LETTER O
       
 19939 <p>                    /x70   <U0070> LATIN SMALL LETTER P
       
 19940 <q>                    /x71   <U0071> LATIN SMALL LETTER Q
       
 19941 <r>                    /x72   <U0072> LATIN SMALL LETTER R
       
 19942 <s>                    /x73   <U0073> LATIN SMALL LETTER S
       
 19943 <t>                    /x74   <U0074> LATIN SMALL LETTER T
       
 19944 <u>                    /x75   <U0075> LATIN SMALL LETTER U
       
 19945 <v>                    /x76   <U0076> LATIN SMALL LETTER V
       
 19946 <w>                    /x77   <U0077> LATIN SMALL LETTER W
       
 19947 <x>                    /x78   <U0078> LATIN SMALL LETTER X
       
 19948 <y>                    /x79   <U0079> LATIN SMALL LETTER Y
       
 19949 <z>                    /x7A   <U007A> LATIN SMALL LETTER Z
       
 19950 <(!!>                   /x7B   <U007B> LEFT CURLY BRACKET
       
 19951 <!!!!>                   /x7C   <U007C> VERTICAL LINE
       
 19952 <!!)>                   /x7D   <U007D> RIGHT CURLY BRACKET
       
 19953 <'?>                   /x7E   <U007E> TILDE
       
 19954 <DT>                   /x7F   <U007F> DELETE (DEL)
       
 19955 <.9>                   /x82   <U201A> SINGLE LOW-9 QUOTATION MARK
       
 19956 <f2>                   /x83   <U0192> LATIN SMALL LETTER F WITH HOOK
       
 19957 <:9>                   /x84   <U201E> DOUBLE LOW-9 QUOTATION MARK
       
 19958 <.3>                   /x85   <U2026> HORIZONTAL ELLIPSIS
       
 19959 <//->                  /x86   <U2020> DAGGER
       
 19960 <//=>                  /x87   <U2021> DOUBLE DAGGER
       
 19961 <%0>                   /x89   <U2030> PER MILLE SIGN
       
 19962 <<1>                   /x8B   <U2039> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
       
 19963 <'6>                   /x91   <U2018> LEFT SINGLE QUOTATION MARK
       
 19964 <'9>                   /x92   <U2019> RIGHT SINGLE QUOTATION MARK
       
 19965 <'6>                   /x93   <U201C> LEFT DOUBLE QUOTATION MARK
       
 19966 <'9>                   /x94   <U201D> RIGHT DOUBLE QUOTATION MARK
       
 19967 <sb>                   /x95   <U2022> BULLET
       
 19968 <-N>                   /x96   <U2013> EN DASH
       
 19969 <-M>                   /x97   <U2014> EM DASH
       
 19970 <TM>                   /x99   <U2122> TRADE MARK SIGN
       
 19971 </>1>                  /x9B   <U203A> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
       
 19972 <NS>                   /xA0   <U00A0> NO-BREAK SPACE
       
 19973 <Ct>                   /xA2   <U00A2> CENT SIGN
       
 19974 <Pd>                   /xA3   <U00A3> POUND SIGN
       
 19975 <Cu>                   /xA4   <U00A4> CURRENCY SIGN
       
 19976 <Ye>                   /xA5   <U00A5> YEN SIGN
       
 19977 <BB>                   /xA6   <U00A6> BROKEN BAR
       
 19978 <SE>                   /xA7   <U00A7> SECTION SIGN
       
 19979 <':>                   /xA8   <U00A8> DIAERESIS
       
 19980 <Co>                   /xA9   <U00A9> COPYRIGHT SIGN
       
 19981 <*X>                   /xAA   <U00D7> MULTIPLICATION SIGN
       
 19982 <<<>                   /xAB   <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 19983 <NO>                   /xAC   <U00AC> NOT SIGN
       
 19984 <-->                   /xAD   <U00AD> SOFT HYPHEN
       
 19985 <Rg>                   /xAE   <U00AE> REGISTERED SIGN
       
 19986 <'->                   /xAF   <U203E> OVERLINE
       
 19987 <DG>                   /xB0   <U00B0> DEGREE SIGN
       
 19988 <+->                   /xB1   <U00B1> PLUS-MINUS SIGN
       
 19989 <2S>                   /xB2   <U00B2> SUPERSCRIPT TWO
       
 19990 <3S>                   /xB3   <U00B3> SUPERSCRIPT THREE
       
 19991 <''>                   /xB4   <U00B4> ACUTE ACCENT
       
 19992 <My>                   /xB5   <U00B5> MICRO SIGN
       
 19993 <PI>                   /xB6   <U00B6> PILCROW SIGN
       
 19994 <.M>                   /xB7   <U00B7> MIDDLE DOT
       
 19995 <',>                   /xB8   <U00B8> CEDILLA
       
 19996 <1S>                   /xB9   <U00B9> SUPERSCRIPT ONE
       
 19997 <-:>                   /xBA   <U00F7> DIVISION SIGN
       
 19998 </>/>>                 /xBB   <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
       
 19999 <14>                   /xBC   <U00BC> VULGAR FRACTION ONE QUARTER
       
 20000 <12>                   /xBD   <U00BD> VULGAR FRACTION ONE HALF
       
 20001 <34>                   /xBE   <U00BE> VULGAR FRACTION THREE QUARTERS
       
 20002 <=2>                   /xDF   <U2017> DOUBLE LOW LINE
       
 20003 <A+>                   /xE0   <U05D0> HEBREW LETTER ALEF
       
 20004 <B+>                   /xE1   <U05D1> HEBREW LETTER BET
       
 20005 <G+>                   /xE2   <U05D2> HEBREW LETTER GIMEL
       
 20006 <D+>                   /xE3   <U05D3> HEBREW LETTER DALET
       
 20007 <H+>                   /xE4   <U05D4> HEBREW LETTER HE
       
 20008 <W+>                   /xE5   <U05D5> HEBREW LETTER VAV
       
 20009 <Z+>                   /xE6   <U05D6> HEBREW LETTER ZAYIN
       
 20010 <X+>                   /xE7   <U05D7> HEBREW LETTER HET
       
 20011 <Tj>                   /xE8   <U05D8> HEBREW LETTER TET
       
 20012 <J+>                   /xE9   <U05D9> HEBREW LETTER YOD
       
 20013 <K%>                   /xEA   <U05DA> HEBREW LETTER FINAL KAF
       
 20014 <K+>                   /xEB   <U05DB> HEBREW LETTER KAF
       
 20015 <L+>                   /xEC   <U05DC> HEBREW LETTER LAMED
       
 20016 <M%>                   /xED   <U05DD> HEBREW LETTER FINAL MEM
       
 20017 <M+>                   /xEE   <U05DE> HEBREW LETTER MEM
       
 20018 <N%>                   /xEF   <U05DF> HEBREW LETTER FINAL NUN
       
 20019 <N+>                   /xF0   <U05E0> HEBREW LETTER NUN
       
 20020 <S+>                   /xF1   <U05E1> HEBREW LETTER SAMEKH
       
 20021 <E+>                   /xF2   <U05E2> HEBREW LETTER AYIN
       
 20022 <P%>                   /xF3   <U05E3> HEBREW LETTER FINAL PE
       
 20023 <P+>                   /xF4   <U05E4> HEBREW LETTER PE
       
 20024 <Zj>                   /xF5   <U05E5> HEBREW LETTER FINAL TSADI
       
 20025 <ZJ>                   /xF6   <U05E6> HEBREW LETTER TSADI
       
 20026 <Q+>                   /xF7   <U05E7> HEBREW LETTER QOF
       
 20027 <R+>                   /xF8   <U05E8> HEBREW LETTER RESH
       
 20028 <Sh>                   /xF9   <U05E9> HEBREW LETTER SHIN
       
 20029 <T+>                   /xFA   <U05EA> HEBREW LETTER TAV
       
 20030 <LR>                   /xFD   <U200E> LEFT-TO-RIGHT MARK
       
 20031 <RL>                   /xFE   <U200F> RIGHT-TO-LEFT MARK
       
 20032 <NUL>                  /x00   <U0000> NUL
       
 20033 <SOH>                  /x01   <U0001> START OF HEADING (SOH)
       
 20034 <STX>                  /x02   <U0002> START OF TEXT (STX)
       
 20035 <ETX>                  /x03   <U0003> END OF TEXT (ETX)
       
 20036 <EOT>                  /x04   <U0004> END OF TRANSMISSION (EOT)
       
 20037 <ENQ>                  /x05   <U0005> ENQUIRY (ENQ)
       
 20038 <ACK>                  /x06   <U0006> ACKNOWLEDGE (ACK)
       
 20039 <alert>                /x07   <U0007> BELL (BEL)
       
 20040 <BEL>                  /x07   <U0007> BELL (BEL)
       
 20041 <backspace>            /x08   <U0008> BACKSPACE (BS)
       
 20042 <tab>                  /x09   <U0009> CHARACTER TABULATION (HT)
       
 20043 <newline>              /x0A   <U000A> LINE FEED (LF)
       
 20044 <vertical-tab>         /x0B   <U000B> LINE TABULATION (VT)
       
 20045 <form-feed>            /x0C   <U000C> FORM FEED (FF)
       
 20046 <carriage-return>      /x0D   <U000D> CARRIAGE RETURN (CR)
       
 20047 <DLE>                  /x10   <U0010> DATALINK ESCAPE (DLE)
       
 20048 <DC1>                  /x11   <U0011> DEVICE CONTROL ONE (DC1)
       
 20049 <DC2>                  /x12   <U0012> DEVICE CONTROL TWO (DC2)
       
 20050 <DC3>                  /x13   <U0013> DEVICE CONTROL THREE (DC3)
       
 20051 <DC4>                  /x14   <U0014> DEVICE CONTROL FOUR (DC4)
       
 20052 <NAK>                  /x15   <U0015> NEGATIVE ACKNOWLEDGE (NAK)
       
 20053 <SYN>                  /x16   <U0016> SYNCHRONOUS IDLE (SYN)
       
 20054 <ETB>                  /x17   <U0017> END OF TRANSMISSION BLOCK (ETB)
       
 20055 <CAN>                  /x18   <U0018> CANCEL (CAN)
       
 20056 <SUB>                  /x1A   <U001A> SUBSTITUTE (SUB)
       
 20057 <ESC>                  /x1B   <U001B> ESCAPE (ESC)
       
 20058 <IS4>                  /x1C   <U001C> FILE SEPARATOR (IS4)
       
 20059 <IS3>                  /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 20060 <intro>                /x1D   <U001D> GROUP SEPARATOR (IS3)
       
 20061 <IS2>                  /x1E   <U001E> RECORD SEPARATOR (IS2)
       
 20062 <IS1>                  /x1F   <U001F> UNIT SEPARATOR (IS1)
       
 20063 <DEL>                  /x7F   <U007F> DELETE (DEL)
       
 20064 <space>                /x20   <U0020> SPACE
       
 20065 <exclamation-mark>     /x21   <U0021> EXCLAMATION MARK
       
 20066 <quotation-mark>       /x22   <U0022> QUOTATION MARK
       
 20067 <number-sign>          /x23   <U0023> NUMBER SIGN
       
 20068 <dollar-sign>          /x24   <U0024> DOLLAR SIGN
       
 20069 <percent-sign>         /x25   <U0025> PERCENT SIGN
       
 20070 <ampersand>            /x26   <U0026> AMPERSAND
       
 20071 <apostrophe>           /x27   <U0027> APOSTROPHE
       
 20072 <left-parenthesis>     /x28   <U0028> LEFT PARENTHESIS
       
 20073 <right-parenthesis>    /x29   <U0029> RIGHT PARENTHESIS
       
 20074 <asterisk>             /x2A   <U002A> ASTERISK
       
 20075 <plus-sign>            /x2B   <U002B> PLUS SIGN
       
 20076 <comma>                /x2C   <U002C> COMMA
       
 20077 <hyphen>               /x2D   <U002D> HYPHEN-MINUS
       
 20078 <hyphen-minus>         /x2D   <U002D> HYPHEN-MINUS
       
 20079 <period>               /x2E   <U002E> FULL STOP
       
 20080 <full-stop>            /x2E   <U002E> FULL STOP
       
 20081 <slash>                /x2F   <U002F> SOLIDUS
       
 20082 <solidus>              /x2F   <U002F> SOLIDUS
       
 20083 <zero>                 /x30   <U0030> DIGIT ZERO
       
 20084 <one>                  /x31   <U0031> DIGIT ONE
       
 20085 <two>                  /x32   <U0032> DIGIT TWO
       
 20086 <three>                /x33   <U0033> DIGIT THREE
       
 20087 <four>                 /x34   <U0034> DIGIT FOUR
       
 20088 <five>                 /x35   <U0035> DIGIT FIVE
       
 20089 <six>                  /x36   <U0036> DIGIT SIX
       
 20090 <seven>                /x37   <U0037> DIGIT SEVEN
       
 20091 <eight>                /x38   <U0038> DIGIT EIGHT
       
 20092 <nine>                 /x39   <U0039> DIGIT NINE
       
 20093 <colon>                /x3A   <U003A> COLON
       
 20094 <semicolon>            /x3B   <U003B> SEMICOLON
       
 20095 <less-than-sign>       /x3C   <U003C> LESS-THAN SIGN
       
 20096 <equals-sign>          /x3D   <U003D> EQUALS SIGN
       
 20097 <greater-than-sign>    /x3E   <U003E> GREATER-THAN SIGN
       
 20098 <question-mark>        /x3F   <U003F> QUESTION MARK
       
 20099 <commercial-at>        /x40   <U0040> COMMERCIAL AT
       
 20100 <left-square-bracket>  /x5B   <U005B> LEFT SQUARE BRACKET
       
 20101 <backslash>            /x5C   <U005C> REVERSE SOLIDUS
       
 20102 <reverse-solidus>      /x5C   <U005C> REVERSE SOLIDUS
       
 20103 <right-square-bracket> /x5D   <U005D> RIGHT SQUARE BRACKET
       
 20104 <circumflex>           /x5E   <U005E> CIRCUMFLEX ACCENT
       
 20105 <circumflex-accent>    /x5E   <U005E> CIRCUMFLEX ACCENT
       
 20106 <underscore>           /x5F   <U005F> LOW LINE
       
 20107 <low-line>             /x5F   <U005F> LOW LINE
       
 20108 <grave-accent>         /x60   <U0060> GRAVE ACCENT
       
 20109 <left-brace>           /x7B   <U007B> LEFT CURLY BRACKET
       
 20110 <left-curly-bracket>   /x7B   <U007B> LEFT CURLY BRACKET
       
 20111 <vertical-line>        /x7C   <U007C> VERTICAL LINE
       
 20112 <right-brace>          /x7D   <U007D> RIGHT CURLY BRACKET
       
 20113 <right-curly-bracket>  /x7D   <U007D> RIGHT CURLY BRACKET
       
 20114 <tilde>                /x7E   <U007E> TILDE
       
 20115 END CHARMAP
       
 20116 
       
 20117 "
       
 20118 !
 18559 
 20119 
 18560 mappingURL2_relativePathName
 20120 mappingURL2_relativePathName
 18561     ^ 'CP1255'
 20121     ^ 'CP1255'
 18562 ! !
 20122 ! !
 18563 
 20123 
 19616 ! !
 21176 ! !
 19617 
 21177 
 19618 !CharacterEncoder class methodsFor:'documentation'!
 21178 !CharacterEncoder class methodsFor:'documentation'!
 19619 
 21179 
 19620 version
 21180 version
 19621     ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoder.st,v 1.6 2004-02-11 13:54:00 cg Exp $'
 21181     ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoder.st,v 1.7 2004-02-11 15:22:02 cg Exp $'
 19622 ! !
 21182 ! !
 19623 
 21183 
 19624 CharacterEncoder initialize!
 21184 CharacterEncoder initialize!