Sisyphus
: 1 2023 | : 18631 | : 37899564
en ru br
ALT
S:2.46-alt1
5.1: 2.36-alt2
4.1: 2.36-alt1
4.0: 2.36-alt1
3.0: 2.34-alt4
www.altlinux.org/Changes

:: /Perl
: perl-XML-Parser

             Sources      Gear   Bugs and FR  Repocop 

: perl-XML-Parser-2.46-alt1.patch



 .gear/rules                                        |   2 +
 .../tags/ccd165306b635dbcf478dc9a769f1b2d0d9dc6fa  |  12 ++
 .gear/tags/list                                    |   1 +
 Expat/Expat.pm                                     |  14 +-
 Expat/Expat.xs                                     |   2 +-
 Parser/Encodings/iso-8859-10.enc                   | Bin 0 -> 1072 bytes
 Parser/Encodings/iso-8859-10.xml                   |  67 ++++++++++
 Parser/Encodings/iso-8859-11.enc                   | Bin 0 -> 1072 bytes
 Parser/Encodings/iso-8859-11.xml                   |   5 +
 Parser/Encodings/iso-8859-13.enc                   | Bin 0 -> 1072 bytes
 Parser/Encodings/iso-8859-13.xml                   |  78 +++++++++++
 Parser/Encodings/iso-8859-14.enc                   | Bin 0 -> 1072 bytes
 Parser/Encodings/iso-8859-14.xml                   |  40 ++++++
 Parser/Encodings/iso-8859-15.xml                   |  16 +++
 Parser/Encodings/iso-8859-16.enc                   | Bin 0 -> 1072 bytes
 Parser/Encodings/iso-8859-16.xml                   |  60 +++++++++
 Parser/Encodings/iso-8859-2.enc                    | Bin 1072 -> 1072 bytes
 Parser/Encodings/iso-8859-2.xml                    |  87 ++++++++++++
 Parser/Encodings/iso-8859-3.enc                    | Bin 1072 -> 1072 bytes
 Parser/Encodings/iso-8859-3.xml                    |  50 +++++++
 Parser/Encodings/iso-8859-4.enc                    | Bin 1072 -> 1072 bytes
 Parser/Encodings/iso-8859-4.xml                    |  72 ++++++++++
 Parser/Encodings/iso-8859-5.enc                    | Bin 1072 -> 1072 bytes
 Parser/Encodings/iso-8859-5.xml                    |  10 ++
 Parser/Encodings/iso-8859-6.enc                    | Bin 0 -> 1072 bytes
 Parser/Encodings/iso-8859-6.xml                    |  10 ++
 Parser/Encodings/iso-8859-7.xml                    |  20 +++
 Parser/Encodings/iso-8859-8.enc                    | Bin 1072 -> 1072 bytes
 Parser/Encodings/iso-8859-8.xml                    |  11 ++
 Parser/Encodings/iso-8859-9.enc                    | Bin 1072 -> 1072 bytes
 Parser/Encodings/iso-8859-9.xml                    |  13 ++
 Parser/Encodings/koi8-r.xml                        |  75 +++++++++++
 Parser/Encodings/update-encodings                  |  25 ++++
 Parser/Encodings/windows-1250.enc                  | Bin 1072 -> 1072 bytes
 Parser/Encodings/windows-1250.xml                  | 100 ++++++++++++++
 Parser/Encodings/windows-1251.xml                  |  54 ++++++++
 Parser/Encodings/windows-1252.xml                  |  26 ++++
 Parser/Encodings/windows-1253.enc                  | Bin 0 -> 1072 bytes
 Parser/Encodings/windows-1253.xml                  |  30 +++++
 Parser/Encodings/windows-1254.enc                  | Bin 0 -> 1072 bytes
 Parser/Encodings/windows-1254.xml                  |  34 +++++
 Parser/Encodings/windows-1255.xml                  |  30 +++++
 Parser/Encodings/windows-1256.enc                  | Bin 0 -> 1072 bytes
 Parser/Encodings/windows-1256.xml                  |  59 +++++++++
 Parser/Encodings/windows-1257.enc                  | Bin 0 -> 1072 bytes
 Parser/Encodings/windows-1257.xml                  |  92 +++++++++++++
 Parser/Encodings/windows-1258.enc                  | Bin 0 -> 1072 bytes
 Parser/Encodings/windows-1258.xml                  |  48 +++++++
 perl-XML-Parser.spec                               | 146 +++++++++++++++++++++
 49 files changed, 1276 insertions(+), 13 deletions(-)
diff --git a/.gear/rules b/.gear/rules
new file mode 100644
index 0000000..4cdcf32
--- /dev/null
+++ b/.gear/rules
@@ -0,0 +1,2 @@
+tar: @version@:. name=XML-Parser-@version@
+diff: @version@:. . name=perl-XML-Parser-@version@-@release@.patch
diff --git a/.gear/tags/ccd165306b635dbcf478dc9a769f1b2d0d9dc6fa b/.gear/tags/ccd165306b635dbcf478dc9a769f1b2d0d9dc6fa
new file mode 100644
index 0000000..a9e1001
--- /dev/null
+++ b/.gear/tags/ccd165306b635dbcf478dc9a769f1b2d0d9dc6fa
@@ -0,0 +1,12 @@
+object b4b87dbd11381e3847290206f2b75643988ed820
+type commit
+tag 2.46
+tagger Igor Vlasenko <viy@altlinux.org> 1607957423 +0200
+
+2.46
+-----BEGIN PGP SIGNATURE-----
+
+iEYEABECAAYFAl/Xe68ACgkQDX9MpIRaJ2MrlwCgpv8aJENd4VUK8RxznVRlS3XH
+cKcAn0YqNT7v1VH6F/t9P5TgZaqmGn+O
+=CC5v
+-----END PGP SIGNATURE-----
diff --git a/.gear/tags/list b/.gear/tags/list
new file mode 100644
index 0000000..58184a2
--- /dev/null
+++ b/.gear/tags/list
@@ -0,0 +1 @@
+ccd165306b635dbcf478dc9a769f1b2d0d9dc6fa 2.46
diff --git a/Expat/Expat.pm b/Expat/Expat.pm
index cb35445..f2925e5 100644
--- a/Expat/Expat.pm
+++ b/Expat/Expat.pm
@@ -9,23 +9,17 @@ use Carp;
 
 our $VERSION = '2.46';
 
-our ( %Encoding_Table, @Encoding_Path, $have_File_Spec );
+our ( %Encoding_Table, @Encoding_Path );
 
 use File::Spec ();
 
 %Encoding_Table = ();
-if ($have_File_Spec) {
     @Encoding_Path = (
         grep( -d $_,
             map( File::Spec->catdir( $_, qw(XML Parser Encodings) ),
                 @INC ) ),
         File::Spec->curdir
     );
-}
-else {
-    @Encoding_Path = ( grep( -d $_, map( $_ . '/XML/Parser/Encodings', @INC ) ), '.' );
-}
-
 XSLoader::load( 'XML::Parser::Expat', $VERSION );
 
 our %Handler_Setters = (
@@ -77,11 +71,7 @@ sub load_encoding {
     $file .= '.enc' unless $file =~ /\.enc$/;
     unless ( $file =~ m!^/! ) {
         foreach (@Encoding_Path) {
-            my $tmp = (
-                $have_File_Spec
-                ? File::Spec->catfile( $_, $file )
-                : "$_/$file"
-            );
+            my $tmp = File::Spec->catfile( $_, $file);
             if ( -e $tmp ) {
                 $file = $tmp;
                 last;
diff --git a/Expat/Expat.xs b/Expat/Expat.xs
index dbad380..f04a0cf 100644
--- a/Expat/Expat.xs
+++ b/Expat/Expat.xs
@@ -499,7 +499,7 @@ startElement(void *userData, const char *name, const char **atts)
     }
   }
 
-  if (cbv->st_serial_stackptr >= cbv->st_serial_stacksize) {
+  if (cbv->st_serial_stackptr + 1 >= cbv->st_serial_stacksize) {
     unsigned int newsize = cbv->st_serial_stacksize + 512;
 
     Renew(cbv->st_serial_stack, newsize, unsigned int);
diff --git a/Parser/Encodings/iso-8859-10.enc b/Parser/Encodings/iso-8859-10.enc
new file mode 100644
index 0000000..43250ba
--- /dev/null
+++ b/Parser/Encodings/iso-8859-10.enc
@@ -0,0 +1,2 @@
+ISO-8859-10	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"*(6;`f}jJ#+)7<ag~ kK.ELhr/
FMis8
\ No newline at end of file
diff --git a/Parser/Encodings/iso-8859-10.xml b/Parser/Encodings/iso-8859-10.xml
new file mode 100644
index 0000000..c7badf2
--- /dev/null
+++ b/Parser/Encodings/iso-8859-10.xml
@@ -0,0 +1,67 @@
+<encmap name='ISO-8859-10' expat='yes'>
+  <range byte='x80' len='33' uni='x0080'/>
+  <ch byte='xa1' uni='x0104'/>
+  <ch byte='xa2' uni='x0112'/>
+  <ch byte='xa3' uni='x0122'/>
+  <ch byte='xa4' uni='x012a'/>
+  <ch byte='xa5' uni='x0128'/>
+  <ch byte='xa6' uni='x0136'/>
+  <ch byte='xa7' uni='x00a7'/>
+  <ch byte='xa8' uni='x013b'/>
+  <ch byte='xa9' uni='x0110'/>
+  <ch byte='xaa' uni='x0160'/>
+  <ch byte='xab' uni='x0166'/>
+  <ch byte='xac' uni='x017d'/>
+  <ch byte='xad' uni='x00ad'/>
+  <ch byte='xae' uni='x016a'/>
+  <ch byte='xaf' uni='x014a'/>
+  <ch byte='xb0' uni='x00b0'/>
+  <ch byte='xb1' uni='x0105'/>
+  <ch byte='xb2' uni='x0113'/>
+  <ch byte='xb3' uni='x0123'/>
+  <ch byte='xb4' uni='x012b'/>
+  <ch byte='xb5' uni='x0129'/>
+  <ch byte='xb6' uni='x0137'/>
+  <ch byte='xb7' uni='x00b7'/>
+  <ch byte='xb8' uni='x013c'/>
+  <ch byte='xb9' uni='x0111'/>
+  <ch byte='xba' uni='x0161'/>
+  <ch byte='xbb' uni='x0167'/>
+  <ch byte='xbc' uni='x017e'/>
+  <ch byte='xbd' uni='x2015'/>
+  <ch byte='xbe' uni='x016b'/>
+  <ch byte='xbf' uni='x014b'/>
+  <ch byte='xc0' uni='x0100'/>
+  <range byte='xc1' len='6' uni='x00c1'/>
+  <ch byte='xc7' uni='x012e'/>
+  <ch byte='xc8' uni='x010c'/>
+  <ch byte='xc9' uni='x00c9'/>
+  <ch byte='xca' uni='x0118'/>
+  <ch byte='xcb' uni='x00cb'/>
+  <ch byte='xcc' uni='x0116'/>
+  <range byte='xcd' len='4' uni='x00cd'/>
+  <ch byte='xd1' uni='x0145'/>
+  <ch byte='xd2' uni='x014c'/>
+  <range byte='xd3' len='4' uni='x00d3'/>
+  <ch byte='xd7' uni='x0168'/>
+  <ch byte='xd8' uni='x00d8'/>
+  <ch byte='xd9' uni='x0172'/>
+  <range byte='xda' len='6' uni='x00da'/>
+  <ch byte='xe0' uni='x0101'/>
+  <range byte='xe1' len='6' uni='x00e1'/>
+  <ch byte='xe7' uni='x012f'/>
+  <ch byte='xe8' uni='x010d'/>
+  <ch byte='xe9' uni='x00e9'/>
+  <ch byte='xea' uni='x0119'/>
+  <ch byte='xeb' uni='x00eb'/>
+  <ch byte='xec' uni='x0117'/>
+  <range byte='xed' len='4' uni='x00ed'/>
+  <ch byte='xf1' uni='x0146'/>
+  <ch byte='xf2' uni='x014d'/>
+  <range byte='xf3' len='4' uni='x00f3'/>
+  <ch byte='xf7' uni='x0169'/>
+  <ch byte='xf8' uni='x00f8'/>
+  <ch byte='xf9' uni='x0173'/>
+  <range byte='xfa' len='5' uni='x00fa'/>
+  <ch byte='xff' uni='x0138'/>
+</encmap>
diff --git a/Parser/Encodings/iso-8859-11.enc b/Parser/Encodings/iso-8859-11.enc
new file mode 100644
index 0000000..8b87ca6
--- /dev/null
+++ b/Parser/Encodings/iso-8859-11.enc
@@ -0,0 +1,3 @@
+ISO-8859-11	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	
+
 !"#$%&'()*+,-./0123456789:?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[
\ No newline at end of file
diff --git a/Parser/Encodings/iso-8859-11.xml b/Parser/Encodings/iso-8859-11.xml
new file mode 100644
index 0000000..2774eb2
--- /dev/null
+++ b/Parser/Encodings/iso-8859-11.xml
@@ -0,0 +1,5 @@
+<encmap name='ISO-8859-11' expat='yes'>
+  <range byte='x80' len='33' uni='x0080'/>
+  <range byte='xa1' len='58' uni='x0e01'/>
+  <range byte='xdf' len='29' uni='x0e3f'/>
+</encmap>
diff --git a/Parser/Encodings/iso-8859-13.enc b/Parser/Encodings/iso-8859-13.enc
new file mode 100644
index 0000000..0b67c5f
--- /dev/null
+++ b/Parser/Encodings/iso-8859-13.enc
@@ -0,0 +1,2 @@
+ISO-8859-13	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  V W.y"6*;`CELrAZj{}/
z#7+<aDFMsB[k|~ 
\ No newline at end of file
diff --git a/Parser/Encodings/iso-8859-13.xml b/Parser/Encodings/iso-8859-13.xml
new file mode 100644
index 0000000..e271c01
--- /dev/null
+++ b/Parser/Encodings/iso-8859-13.xml
@@ -0,0 +1,78 @@
+<encmap name='ISO-8859-13' expat='yes'>
+  <range byte='x80' len='33' uni='x0080'/>
+  <ch byte='xa1' uni='x201d'/>
+  <range byte='xa2' len='3' uni='x00a2'/>
+  <ch byte='xa5' uni='x201e'/>
+  <range byte='xa6' len='2' uni='x00a6'/>
+  <ch byte='xa8' uni='x00d8'/>
+  <ch byte='xa9' uni='x00a9'/>
+  <ch byte='xaa' uni='x0156'/>
+  <range byte='xab' len='4' uni='x00ab'/>
+  <ch byte='xaf' uni='x00c6'/>
+  <range byte='xb0' len='4' uni='x00b0'/>
+  <ch byte='xb4' uni='x201c'/>
+  <range byte='xb5' len='3' uni='x00b5'/>
+  <ch byte='xb8' uni='x00f8'/>
+  <ch byte='xb9' uni='x00b9'/>
+  <ch byte='xba' uni='x0157'/>
+  <range byte='xbb' len='4' uni='x00bb'/>
+  <ch byte='xbf' uni='x00e6'/>
+  <ch byte='xc0' uni='x0104'/>
+  <ch byte='xc1' uni='x012e'/>
+  <ch byte='xc2' uni='x0100'/>
+  <ch byte='xc3' uni='x0106'/>
+  <range byte='xc4' len='2' uni='x00c4'/>
+  <ch byte='xc6' uni='x0118'/>
+  <ch byte='xc7' uni='x0112'/>
+  <ch byte='xc8' uni='x010c'/>
+  <ch byte='xc9' uni='x00c9'/>
+  <ch byte='xca' uni='x0179'/>
+  <ch byte='xcb' uni='x0116'/>
+  <ch byte='xcc' uni='x0122'/>
+  <ch byte='xcd' uni='x0136'/>
+  <ch byte='xce' uni='x012a'/>
+  <ch byte='xcf' uni='x013b'/>
+  <ch byte='xd0' uni='x0160'/>
+  <ch byte='xd1' uni='x0143'/>
+  <ch byte='xd2' uni='x0145'/>
+  <ch byte='xd3' uni='x00d3'/>
+  <ch byte='xd4' uni='x014c'/>
+  <range byte='xd5' len='3' uni='x00d5'/>
+  <ch byte='xd8' uni='x0172'/>
+  <ch byte='xd9' uni='x0141'/>
+  <ch byte='xda' uni='x015a'/>
+  <ch byte='xdb' uni='x016a'/>
+  <ch byte='xdc' uni='x00dc'/>
+  <ch byte='xdd' uni='x017b'/>
+  <ch byte='xde' uni='x017d'/>
+  <ch byte='xdf' uni='x00df'/>
+  <ch byte='xe0' uni='x0105'/>
+  <ch byte='xe1' uni='x012f'/>
+  <ch byte='xe2' uni='x0101'/>
+  <ch byte='xe3' uni='x0107'/>
+  <range byte='xe4' len='2' uni='x00e4'/>
+  <ch byte='xe6' uni='x0119'/>
+  <ch byte='xe7' uni='x0113'/>
+  <ch byte='xe8' uni='x010d'/>
+  <ch byte='xe9' uni='x00e9'/>
+  <ch byte='xea' uni='x017a'/>
+  <ch byte='xeb' uni='x0117'/>
+  <ch byte='xec' uni='x0123'/>
+  <ch byte='xed' uni='x0137'/>
+  <ch byte='xee' uni='x012b'/>
+  <ch byte='xef' uni='x013c'/>
+  <ch byte='xf0' uni='x0161'/>
+  <ch byte='xf1' uni='x0144'/>
+  <ch byte='xf2' uni='x0146'/>
+  <ch byte='xf3' uni='x00f3'/>
+  <ch byte='xf4' uni='x014d'/>
+  <range byte='xf5' len='3' uni='x00f5'/>
+  <ch byte='xf8' uni='x0173'/>
+  <ch byte='xf9' uni='x0142'/>
+  <ch byte='xfa' uni='x015b'/>
+  <ch byte='xfb' uni='x016b'/>
+  <ch byte='xfc' uni='x00fc'/>
+  <ch byte='xfd' uni='x017c'/>
+  <ch byte='xfe' uni='x017e'/>
+  <ch byte='xff' uni='x2019'/>
+</encmap>
diff --git a/Parser/Encodings/iso-8859-14.enc b/Parser/Encodings/iso-8859-14.enc
new file mode 100644
index 0000000..b0c1171
--- /dev/null
+++ b/Parser/Encodings/iso-8859-14.enc
@@ -0,0 +1,4 @@
+ISO-8859-14	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
+
+x !@AVW`atjvukw
\ No newline at end of file
diff --git a/Parser/Encodings/iso-8859-14.xml b/Parser/Encodings/iso-8859-14.xml
new file mode 100644
index 0000000..80e2ce2
--- /dev/null
+++ b/Parser/Encodings/iso-8859-14.xml
@@ -0,0 +1,40 @@
+<encmap name='ISO-8859-14' expat='yes'>
+  <range byte='x80' len='33' uni='x0080'/>
+  <range byte='xa1' len='2' uni='x1e02'/>
+  <ch byte='xa3' uni='x00a3'/>
+  <range byte='xa4' len='2' uni='x010a'/>
+  <ch byte='xa6' uni='x1e0a'/>
+  <ch byte='xa7' uni='x00a7'/>
+  <ch byte='xa8' uni='x1e80'/>
+  <ch byte='xa9' uni='x00a9'/>
+  <ch byte='xaa' uni='x1e82'/>
+  <ch byte='xab' uni='x1e0b'/>
+  <ch byte='xac' uni='x1ef2'/>
+  <range byte='xad' len='2' uni='x00ad'/>
+  <ch byte='xaf' uni='x0178'/>
+  <range byte='xb0' len='2' uni='x1e1e'/>
+  <range byte='xb2' len='2' uni='x0120'/>
+  <range byte='xb4' len='2' uni='x1e40'/>
+  <ch byte='xb6' uni='x00b6'/>
+  <ch byte='xb7' uni='x1e56'/>
+  <ch byte='xb8' uni='x1e81'/>
+  <ch byte='xb9' uni='x1e57'/>
+  <ch byte='xba' uni='x1e83'/>
+  <ch byte='xbb' uni='x1e60'/>
+  <ch byte='xbc' uni='x1ef3'/>
+  <range byte='xbd' len='2' uni='x1e84'/>
+  <ch byte='xbf' uni='x1e61'/>
+  <range byte='xc0' len='16' uni='x00c0'/>
+  <ch byte='xd0' uni='x0174'/>
+  <range byte='xd1' len='6' uni='x00d1'/>
+  <ch byte='xd7' uni='x1e6a'/>
+  <range byte='xd8' len='6' uni='x00d8'/>
+  <ch byte='xde' uni='x0176'/>
+  <range byte='xdf' len='17' uni='x00df'/>
+  <ch byte='xf0' uni='x0175'/>
+  <range byte='xf1' len='6' uni='x00f1'/>
+  <ch byte='xf7' uni='x1e6b'/>
+  <range byte='xf8' len='6' uni='x00f8'/>
+  <ch byte='xfe' uni='x0177'/>
+  <ch byte='xff' uni='x00ff'/>
+</encmap>
diff --git a/Parser/Encodings/iso-8859-15.xml b/Parser/Encodings/iso-8859-15.xml
new file mode 100644
index 0000000..da7108c
--- /dev/null
+++ b/Parser/Encodings/iso-8859-15.xml
@@ -0,0 +1,16 @@
+<encmap name='ISO-8859-15' expat='yes'>
+  <range byte='x80' len='36' uni='x0080'/>
+  <ch byte='xa4' uni='x20ac'/>
+  <ch byte='xa5' uni='x00a5'/>
+  <ch byte='xa6' uni='x0160'/>
+  <ch byte='xa7' uni='x00a7'/>
+  <ch byte='xa8' uni='x0161'/>
+  <range byte='xa9' len='11' uni='x00a9'/>
+  <ch byte='xb4' uni='x017d'/>
+  <range byte='xb5' len='3' uni='x00b5'/>
+  <ch byte='xb8' uni='x017e'/>
+  <range byte='xb9' len='3' uni='x00b9'/>
+  <range byte='xbc' len='2' uni='x0152'/>
+  <ch byte='xbe' uni='x0178'/>
+  <range byte='xbf' len='65' uni='x00bf'/>
+</encmap>
diff --git a/Parser/Encodings/iso-8859-16.enc b/Parser/Encodings/iso-8859-16.enc
new file mode 100644
index 0000000..61b2510
--- /dev/null
+++ b/Parser/Encodings/iso-8859-16.enc
@@ -0,0 +1,2 @@
+ISO-8859-16	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~A  `ayz{B} ~
RSx|CPZpDQ[q
\ No newline at end of file
diff --git a/Parser/Encodings/iso-8859-16.xml b/Parser/Encodings/iso-8859-16.xml
new file mode 100644
index 0000000..590d632
--- /dev/null
+++ b/Parser/Encodings/iso-8859-16.xml
@@ -0,0 +1,60 @@
+<encmap name='ISO-8859-16' expat='yes'>
+  <range byte='x80' len='33' uni='x0080'/>
+  <range byte='xa1' len='2' uni='x0104'/>
+  <ch byte='xa3' uni='x0141'/>
+  <ch byte='xa4' uni='x20ac'/>
+  <ch byte='xa5' uni='x201e'/>
+  <ch byte='xa6' uni='x0160'/>
+  <ch byte='xa7' uni='x00a7'/>
+  <ch byte='xa8' uni='x0161'/>
+  <ch byte='xa9' uni='x00a9'/>
+  <ch byte='xaa' uni='x0218'/>
+  <ch byte='xab' uni='x00ab'/>
+  <ch byte='xac' uni='x0179'/>
+  <ch byte='xad' uni='x00ad'/>
+  <range byte='xae' len='2' uni='x017a'/>
+  <range byte='xb0' len='2' uni='x00b0'/>
+  <ch byte='xb2' uni='x010c'/>
+  <ch byte='xb3' uni='x0142'/>
+  <ch byte='xb4' uni='x017d'/>
+  <ch byte='xb5' uni='x201d'/>
+  <range byte='xb6' len='2' uni='x00b6'/>
+  <ch byte='xb8' uni='x017e'/>
+  <ch byte='xb9' uni='x010d'/>
+  <ch byte='xba' uni='x0219'/>
+  <ch byte='xbb' uni='x00bb'/>
+  <range byte='xbc' len='2' uni='x0152'/>
+  <ch byte='xbe' uni='x0178'/>
+  <ch byte='xbf' uni='x017c'/>
+  <range byte='xc0' len='3' uni='x00c0'/>
+  <ch byte='xc3' uni='x0102'/>
+  <ch byte='xc4' uni='x00c4'/>
+  <ch byte='xc5' uni='x0106'/>
+  <range byte='xc6' len='10' uni='x00c6'/>
+  <ch byte='xd0' uni='x0110'/>
+  <ch byte='xd1' uni='x0143'/>
+  <range byte='xd2' len='3' uni='x00d2'/>
+  <ch byte='xd5' uni='x0150'/>
+  <ch byte='xd6' uni='x00d6'/>
+  <ch byte='xd7' uni='x015a'/>
+  <ch byte='xd8' uni='x0170'/>
+  <range byte='xd9' len='4' uni='x00d9'/>
+  <ch byte='xdd' uni='x0118'/>
+  <ch byte='xde' uni='x021a'/>
+  <range byte='xdf' len='4' uni='x00df'/>
+  <ch byte='xe3' uni='x0103'/>
+  <ch byte='xe4' uni='x00e4'/>
+  <ch byte='xe5' uni='x0107'/>
+  <range byte='xe6' len='10' uni='x00e6'/>
+  <ch byte='xf0' uni='x0111'/>
+  <ch byte='xf1' uni='x0144'/>
+  <range byte='xf2' len='3' uni='x00f2'/>
+  <ch byte='xf5' uni='x0151'/>
+  <ch byte='xf6' uni='x00f6'/>
+  <ch byte='xf7' uni='x015b'/>
+  <ch byte='xf8' uni='x0171'/>
+  <range byte='xf9' len='4' uni='x00f9'/>
+  <ch byte='xfd' uni='x0119'/>
+  <ch byte='xfe' uni='x021b'/>
+  <ch byte='xff' uni='x00ff'/>
+</encmap>
diff --git a/Parser/Encodings/iso-8859-2.enc b/Parser/Encodings/iso-8859-2.enc
index d320d7f..df1b52a 100644
--- a/Parser/Encodings/iso-8859-2.enc
+++ b/Parser/Encodings/iso-8859-2.enc
@@ -1,2 +1,2 @@
 ISO-8859-2	
-
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~A=Z`^dy}{B>[a_ez~|T9CGPXnpbU:
DHQYoqc
\ No newline at end of file
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~A=Z`^dy}{B>[a_ez~|T9CGPXnpbU:
DHQYoqc
\ No newline at end of file
diff --git a/Parser/Encodings/iso-8859-2.xml b/Parser/Encodings/iso-8859-2.xml
new file mode 100644
index 0000000..cc885db
--- /dev/null
+++ b/Parser/Encodings/iso-8859-2.xml
@@ -0,0 +1,87 @@
+<encmap name='ISO-8859-2' expat='yes'>
+  <range byte='x80' len='33' uni='x0080'/>
+  <ch byte='xa1' uni='x0104'/>
+  <ch byte='xa2' uni='x02d8'/>
+  <ch byte='xa3' uni='x0141'/>
+  <ch byte='xa4' uni='x00a4'/>
+  <ch byte='xa5' uni='x013d'/>
+  <ch byte='xa6' uni='x015a'/>
+  <range byte='xa7' len='2' uni='x00a7'/>
+  <ch byte='xa9' uni='x0160'/>
+  <ch byte='xaa' uni='x015e'/>
+  <ch byte='xab' uni='x0164'/>
+  <ch byte='xac' uni='x0179'/>
+  <ch byte='xad' uni='x00ad'/>
+  <ch byte='xae' uni='x017d'/>
+  <ch byte='xaf' uni='x017b'/>
+  <ch byte='xb0' uni='x00b0'/>
+  <ch byte='xb1' uni='x0105'/>
+  <ch byte='xb2' uni='x02db'/>
+  <ch byte='xb3' uni='x0142'/>
+  <ch byte='xb4' uni='x00b4'/>
+  <ch byte='xb5' uni='x013e'/>
+  <ch byte='xb6' uni='x015b'/>
+  <ch byte='xb7' uni='x02c7'/>
+  <ch byte='xb8' uni='x00b8'/>
+  <ch byte='xb9' uni='x0161'/>
+  <ch byte='xba' uni='x015f'/>
+  <ch byte='xbb' uni='x0165'/>
+  <ch byte='xbc' uni='x017a'/>
+  <ch byte='xbd' uni='x02dd'/>
+  <ch byte='xbe' uni='x017e'/>
+  <ch byte='xbf' uni='x017c'/>
+  <ch byte='xc0' uni='x0154'/>
+  <range byte='xc1' len='2' uni='x00c1'/>
+  <ch byte='xc3' uni='x0102'/>
+  <ch byte='xc4' uni='x00c4'/>
+  <ch byte='xc5' uni='x0139'/>
+  <ch byte='xc6' uni='x0106'/>
+  <ch byte='xc7' uni='x00c7'/>
+  <ch byte='xc8' uni='x010c'/>
+  <ch byte='xc9' uni='x00c9'/>
+  <ch byte='xca' uni='x0118'/>
+  <ch byte='xcb' uni='x00cb'/>
+  <ch byte='xcc' uni='x011a'/>
+  <range byte='xcd' len='2' uni='x00cd'/>
+  <ch byte='xcf' uni='x010e'/>
+  <ch byte='xd0' uni='x0110'/>
+  <ch byte='xd1' uni='x0143'/>
+  <ch byte='xd2' uni='x0147'/>
+  <range byte='xd3' len='2' uni='x00d3'/>
+  <ch byte='xd5' uni='x0150'/>
+  <range byte='xd6' len='2' uni='x00d6'/>
+  <ch byte='xd8' uni='x0158'/>
+  <ch byte='xd9' uni='x016e'/>
+  <ch byte='xda' uni='x00da'/>
+  <ch byte='xdb' uni='x0170'/>
+  <range byte='xdc' len='2' uni='x00dc'/>
+  <ch byte='xde' uni='x0162'/>
+  <ch byte='xdf' uni='x00df'/>
+  <ch byte='xe0' uni='x0155'/>
+  <range byte='xe1' len='2' uni='x00e1'/>
+  <ch byte='xe3' uni='x0103'/>
+  <ch byte='xe4' uni='x00e4'/>
+  <ch byte='xe5' uni='x013a'/>
+  <ch byte='xe6' uni='x0107'/>
+  <ch byte='xe7' uni='x00e7'/>
+  <ch byte='xe8' uni='x010d'/>
+  <ch byte='xe9' uni='x00e9'/>
+  <ch byte='xea' uni='x0119'/>
+  <ch byte='xeb' uni='x00eb'/>
+  <ch byte='xec' uni='x011b'/>
+  <range byte='xed' len='2' uni='x00ed'/>
+  <ch byte='xef' uni='x010f'/>
+  <ch byte='xf0' uni='x0111'/>
+  <ch byte='xf1' uni='x0144'/>
+  <ch byte='xf2' uni='x0148'/>
+  <range byte='xf3' len='2' uni='x00f3'/>
+  <ch byte='xf5' uni='x0151'/>
+  <range byte='xf6' len='2' uni='x00f6'/>
+  <ch byte='xf8' uni='x0159'/>
+  <ch byte='xf9' uni='x016f'/>
+  <ch byte='xfa' uni='x00fa'/>
+  <ch byte='xfb' uni='x0171'/>
+  <range byte='xfc' len='2' uni='x00fc'/>
+  <ch byte='xfe' uni='x0163'/>
+  <ch byte='xff' uni='x02d9'/>
+</encmap>
diff --git a/Parser/Encodings/iso-8859-3.enc b/Parser/Encodings/iso-8859-3.enc
index ba48378..0967f96 100644
--- a/Parser/Encodings/iso-8859-3.enc
+++ b/Parser/Encodings/iso-8859-3.enc
@@ -1,3 +1,3 @@
 ISO-8859-3	
-
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~&$0^4{'%1_5|
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~&$0^4{'%1_5|
  l\	!m]
\ No newline at end of file
diff --git a/Parser/Encodings/iso-8859-3.xml b/Parser/Encodings/iso-8859-3.xml
new file mode 100644
index 0000000..6055c6a
--- /dev/null
+++ b/Parser/Encodings/iso-8859-3.xml
@@ -0,0 +1,50 @@
+<encmap name='ISO-8859-3' expat='yes'>
+  <range byte='x80' len='33' uni='x0080'/>
+  <ch byte='xa1' uni='x0126'/>
+  <ch byte='xa2' uni='x02d8'/>
+  <range byte='xa3' len='2' uni='x00a3'/>
+  <ch byte='xa6' uni='x0124'/>
+  <range byte='xa7' len='2' uni='x00a7'/>
+  <ch byte='xa9' uni='x0130'/>
+  <ch byte='xaa' uni='x015e'/>
+  <ch byte='xab' uni='x011e'/>
+  <ch byte='xac' uni='x0134'/>
+  <ch byte='xad' uni='x00ad'/>
+  <ch byte='xaf' uni='x017b'/>
+  <ch byte='xb0' uni='x00b0'/>
+  <ch byte='xb1' uni='x0127'/>
+  <range byte='xb2' len='4' uni='x00b2'/>
+  <ch byte='xb6' uni='x0125'/>
+  <range byte='xb7' len='2' uni='x00b7'/>
+  <ch byte='xb9' uni='x0131'/>
+  <ch byte='xba' uni='x015f'/>
+  <ch byte='xbb' uni='x011f'/>
+  <ch byte='xbc' uni='x0135'/>
+  <ch byte='xbd' uni='x00bd'/>
+  <ch byte='xbf' uni='x017c'/>
+  <range byte='xc0' len='3' uni='x00c0'/>
+  <ch byte='xc4' uni='x00c4'/>
+  <ch byte='xc5' uni='x010a'/>
+  <ch byte='xc6' uni='x0108'/>
+  <range byte='xc7' len='9' uni='x00c7'/>
+  <range byte='xd1' len='4' uni='x00d1'/>
+  <ch byte='xd5' uni='x0120'/>
+  <range byte='xd6' len='2' uni='x00d6'/>
+  <ch byte='xd8' uni='x011c'/>
+  <range byte='xd9' len='4' uni='x00d9'/>
+  <ch byte='xdd' uni='x016c'/>
+  <ch byte='xde' uni='x015c'/>
+  <range byte='xdf' len='4' uni='x00df'/>
+  <ch byte='xe4' uni='x00e4'/>
+  <ch byte='xe5' uni='x010b'/>
+  <ch byte='xe6' uni='x0109'/>
+  <range byte='xe7' len='9' uni='x00e7'/>
+  <range byte='xf1' len='4' uni='x00f1'/>
+  <ch byte='xf5' uni='x0121'/>
+  <range byte='xf6' len='2' uni='x00f6'/>
+  <ch byte='xf8' uni='x011d'/>
+  <range byte='xf9' len='4' uni='x00f9'/>
+  <ch byte='xfd' uni='x016d'/>
+  <ch byte='xfe' uni='x015d'/>
+  <ch byte='xff' uni='x02d9'/>
+</encmap>
diff --git a/Parser/Encodings/iso-8859-4.enc b/Parser/Encodings/iso-8859-4.enc
index 0294a24..517ac63 100644
--- a/Parser/Encodings/iso-8859-4.enc
+++ b/Parser/Encodings/iso-8859-4.enc
@@ -1,2 +1,2 @@
 ISO-8859-4	
-
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~8V(;`"f}W)<a#gJ~K.*EL6rhj/
+FM7sik
\ No newline at end of file
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~8V(;`"f}W)<a#gJ~K.*EL6rhj/
+FM7sik
\ No newline at end of file
diff --git a/Parser/Encodings/iso-8859-4.xml b/Parser/Encodings/iso-8859-4.xml
new file mode 100644
index 0000000..1aca475
--- /dev/null
+++ b/Parser/Encodings/iso-8859-4.xml
@@ -0,0 +1,72 @@
+<encmap name='ISO-8859-4' expat='yes'>
+  <range byte='x80' len='33' uni='x0080'/>
+  <ch byte='xa1' uni='x0104'/>
+  <ch byte='xa2' uni='x0138'/>
+  <ch byte='xa3' uni='x0156'/>
+  <ch byte='xa4' uni='x00a4'/>
+  <ch byte='xa5' uni='x0128'/>
+  <ch byte='xa6' uni='x013b'/>
+  <range byte='xa7' len='2' uni='x00a7'/>
+  <ch byte='xa9' uni='x0160'/>
+  <ch byte='xaa' uni='x0112'/>
+  <ch byte='xab' uni='x0122'/>
+  <ch byte='xac' uni='x0166'/>
+  <ch byte='xad' uni='x00ad'/>
+  <ch byte='xae' uni='x017d'/>
+  <range byte='xaf' len='2' uni='x00af'/>
+  <ch byte='xb1' uni='x0105'/>
+  <ch byte='xb2' uni='x02db'/>
+  <ch byte='xb3' uni='x0157'/>
+  <ch byte='xb4' uni='x00b4'/>
+  <ch byte='xb5' uni='x0129'/>
+  <ch byte='xb6' uni='x013c'/>
+  <ch byte='xb7' uni='x02c7'/>
+  <ch byte='xb8' uni='x00b8'/>
+  <ch byte='xb9' uni='x0161'/>
+  <ch byte='xba' uni='x0113'/>
+  <ch byte='xbb' uni='x0123'/>
+  <ch byte='xbc' uni='x0167'/>
+  <ch byte='xbd' uni='x014a'/>
+  <ch byte='xbe' uni='x017e'/>
+  <ch byte='xbf' uni='x014b'/>
+  <ch byte='xc0' uni='x0100'/>
+  <range byte='xc1' len='6' uni='x00c1'/>
+  <ch byte='xc7' uni='x012e'/>
+  <ch byte='xc8' uni='x010c'/>
+  <ch byte='xc9' uni='x00c9'/>
+  <ch byte='xca' uni='x0118'/>
+  <ch byte='xcb' uni='x00cb'/>
+  <ch byte='xcc' uni='x0116'/>
+  <range byte='xcd' len='2' uni='x00cd'/>
+  <ch byte='xcf' uni='x012a'/>
+  <ch byte='xd0' uni='x0110'/>
+  <ch byte='xd1' uni='x0145'/>
+  <ch byte='xd2' uni='x014c'/>
+  <ch byte='xd3' uni='x0136'/>
+  <range byte='xd4' len='5' uni='x00d4'/>
+  <ch byte='xd9' uni='x0172'/>
+  <range byte='xda' len='3' uni='x00da'/>
+  <ch byte='xdd' uni='x0168'/>
+  <ch byte='xde' uni='x016a'/>
+  <ch byte='xdf' uni='x00df'/>
+  <ch byte='xe0' uni='x0101'/>
+  <range byte='xe1' len='6' uni='x00e1'/>
+  <ch byte='xe7' uni='x012f'/>
+  <ch byte='xe8' uni='x010d'/>
+  <ch byte='xe9' uni='x00e9'/>
+  <ch byte='xea' uni='x0119'/>
+  <ch byte='xeb' uni='x00eb'/>
+  <ch byte='xec' uni='x0117'/>
+  <range byte='xed' len='2' uni='x00ed'/>
+  <ch byte='xef' uni='x012b'/>
+  <ch byte='xf0' uni='x0111'/>
+  <ch byte='xf1' uni='x0146'/>
+  <ch byte='xf2' uni='x014d'/>
+  <ch byte='xf3' uni='x0137'/>
+  <range byte='xf4' len='5' uni='x00f4'/>
+  <ch byte='xf9' uni='x0173'/>
+  <range byte='xfa' len='3' uni='x00fa'/>
+  <ch byte='xfd' uni='x0169'/>
+  <ch byte='xfe' uni='x016b'/>
+  <ch byte='xff' uni='x02d9'/>
+</encmap>
diff --git a/Parser/Encodings/iso-8859-5.enc b/Parser/Encodings/iso-8859-5.enc
index 6dbd169..6fde928 100644
--- a/Parser/Encodings/iso-8859-5.enc
+++ b/Parser/Encodings/iso-8859-5.enc
@@ -1,3 +1,3 @@
 ISO-8859-5	
-
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	
  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO!QRSTUVWXYZ[\^_
\ No newline at end of file
diff --git a/Parser/Encodings/iso-8859-5.xml b/Parser/Encodings/iso-8859-5.xml
new file mode 100644
index 0000000..be1d095
--- /dev/null
+++ b/Parser/Encodings/iso-8859-5.xml
@@ -0,0 +1,10 @@
+<encmap name='ISO-8859-5' expat='yes'>
+  <range byte='x80' len='33' uni='x0080'/>
+  <range byte='xa1' len='12' uni='x0401'/>
+  <ch byte='xad' uni='x00ad'/>
+  <range byte='xae' len='66' uni='x040e'/>
+  <ch byte='xf0' uni='x2116'/>
+  <range byte='xf1' len='12' uni='x0451'/>
+  <ch byte='xfd' uni='x00a7'/>
+  <range byte='xfe' len='2' uni='x045e'/>
+</encmap>
diff --git a/Parser/Encodings/iso-8859-6.enc b/Parser/Encodings/iso-8859-6.enc
new file mode 100644
index 0000000..b0c67fd
--- /dev/null
+++ b/Parser/Encodings/iso-8859-6.enc
@@ -0,0 +1,2 @@
+ISO-8859-6	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!"#$%&'()*+,-./0123456789:@ABCDEFGHIJKLMNOPQR
\ No newline at end of file
diff --git a/Parser/Encodings/iso-8859-6.xml b/Parser/Encodings/iso-8859-6.xml
new file mode 100644
index 0000000..9f6a74d
--- /dev/null
+++ b/Parser/Encodings/iso-8859-6.xml
@@ -0,0 +1,10 @@
+<encmap name='ISO-8859-6' expat='yes'>
+  <range byte='x80' len='33' uni='x0080'/>
+  <ch byte='xa4' uni='x00a4'/>
+  <ch byte='xac' uni='x060c'/>
+  <ch byte='xad' uni='x00ad'/>
+  <ch byte='xbb' uni='x061b'/>
+  <ch byte='xbf' uni='x061f'/>
+  <range byte='xc1' len='26' uni='x0621'/>
+  <range byte='xe0' len='19' uni='x0640'/>
+</encmap>
diff --git a/Parser/Encodings/iso-8859-7.xml b/Parser/Encodings/iso-8859-7.xml
new file mode 100644
index 0000000..c49cb58
--- /dev/null
+++ b/Parser/Encodings/iso-8859-7.xml
@@ -0,0 +1,20 @@
+<encmap name='ISO-8859-7' expat='yes'>
+  <range byte='x80' len='33' uni='x0080'/>
+  <range byte='xa1' len='2' uni='x2018'/>
+  <ch byte='xa3' uni='x00a3'/>
+  <ch byte='xa4' uni='x20ac'/>
+  <ch byte='xa5' uni='x20af'/>
+  <range byte='xa6' len='4' uni='x00a6'/>
+  <ch byte='xaa' uni='x037a'/>
+  <range byte='xab' len='3' uni='x00ab'/>
+  <ch byte='xaf' uni='x2015'/>
+  <range byte='xb0' len='4' uni='x00b0'/>
+  <range byte='xb4' len='3' uni='x0384'/>
+  <ch byte='xb7' uni='x00b7'/>
+  <range byte='xb8' len='3' uni='x0388'/>
+  <ch byte='xbb' uni='x00bb'/>
+  <ch byte='xbc' uni='x038c'/>
+  <ch byte='xbd' uni='x00bd'/>
+  <range byte='xbe' len='20' uni='x038e'/>
+  <range byte='xd3' len='44' uni='x03a3'/>
+</encmap>
diff --git a/Parser/Encodings/iso-8859-8.enc b/Parser/Encodings/iso-8859-8.enc
index f211bd5..8f6e20e 100644
--- a/Parser/Encodings/iso-8859-8.enc
+++ b/Parser/Encodings/iso-8859-8.enc
@@ -1,2 +1,2 @@
 ISO-8859-8	
-
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ > 
\ No newline at end of file
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   
\ No newline at end of file
diff --git a/Parser/Encodings/iso-8859-8.xml b/Parser/Encodings/iso-8859-8.xml
new file mode 100644
index 0000000..3b70e1c
--- /dev/null
+++ b/Parser/Encodings/iso-8859-8.xml
@@ -0,0 +1,11 @@
+<encmap name='ISO-8859-8' expat='yes'>
+  <range byte='x80' len='33' uni='x0080'/>
+  <range byte='xa2' len='8' uni='x00a2'/>
+  <ch byte='xaa' uni='x00d7'/>
+  <range byte='xab' len='15' uni='x00ab'/>
+  <ch byte='xba' uni='x00f7'/>
+  <range byte='xbb' len='4' uni='x00bb'/>
+  <ch byte='xdf' uni='x2017'/>
+  <range byte='xe0' len='27' uni='x05d0'/>
+  <range byte='xfd' len='2' uni='x200e'/>
+</encmap>
diff --git a/Parser/Encodings/iso-8859-9.enc b/Parser/Encodings/iso-8859-9.enc
index fdc574b..2c4f12a 100644
--- a/Parser/Encodings/iso-8859-9.enc
+++ b/Parser/Encodings/iso-8859-9.enc
@@ -1,2 +1,2 @@
 ISO-8859-9	
-
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0^1_
\ No newline at end of file
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0^1_
\ No newline at end of file
diff --git a/Parser/Encodings/iso-8859-9.xml b/Parser/Encodings/iso-8859-9.xml
new file mode 100644
index 0000000..a9654da
--- /dev/null
+++ b/Parser/Encodings/iso-8859-9.xml
@@ -0,0 +1,13 @@
+<encmap name='ISO-8859-9' expat='yes'>
+  <range byte='x80' len='80' uni='x0080'/>
+  <ch byte='xd0' uni='x011e'/>
+  <range byte='xd1' len='12' uni='x00d1'/>
+  <ch byte='xdd' uni='x0130'/>
+  <ch byte='xde' uni='x015e'/>
+  <range byte='xdf' len='17' uni='x00df'/>
+  <ch byte='xf0' uni='x011f'/>
+  <range byte='xf1' len='12' uni='x00f1'/>
+  <ch byte='xfd' uni='x0131'/>
+  <ch byte='xfe' uni='x015f'/>
+  <ch byte='xff' uni='x00ff'/>
+</encmap>
diff --git a/Parser/Encodings/koi8-r.xml b/Parser/Encodings/koi8-r.xml
new file mode 100644
index 0000000..cf8a2af
--- /dev/null
+++ b/Parser/Encodings/koi8-r.xml
@@ -0,0 +1,75 @@
+<encmap name='koi8-r' expat='yes'>
+  <ch byte='x80' uni='x2500'/>
+  <ch byte='x81' uni='x2502'/>
+  <ch byte='x82' uni='x250c'/>
+  <ch byte='x83' uni='x2510'/>
+  <ch byte='x84' uni='x2514'/>
+  <ch byte='x85' uni='x2518'/>
+  <ch byte='x86' uni='x251c'/>
+  <ch byte='x87' uni='x2524'/>
+  <ch byte='x88' uni='x252c'/>
+  <ch byte='x89' uni='x2534'/>
+  <ch byte='x8a' uni='x253c'/>
+  <ch byte='x8b' uni='x2580'/>
+  <ch byte='x8c' uni='x2584'/>
+  <ch byte='x8d' uni='x2588'/>
+  <ch byte='x8e' uni='x258c'/>
+  <range byte='x8f' len='4' uni='x2590'/>
+  <ch byte='x93' uni='x2320'/>
+  <ch byte='x94' uni='x25a0'/>
+  <range byte='x95' len='2' uni='x2219'/>
+  <ch byte='x97' uni='x2248'/>
+  <range byte='x98' len='2' uni='x2264'/>
+  <ch byte='x9a' uni='x00a0'/>
+  <ch byte='x9b' uni='x2321'/>
+  <ch byte='x9c' uni='x00b0'/>
+  <ch byte='x9d' uni='x00b2'/>
+  <ch byte='x9e' uni='x00b7'/>
+  <ch byte='x9f' uni='x00f7'/>
+  <range byte='xa0' len='3' uni='x2550'/>
+  <ch byte='xa3' uni='x0451'/>
+  <range byte='xa4' len='15' uni='x2553'/>
+  <ch byte='xb3' uni='x0401'/>
+  <range byte='xb4' len='11' uni='x2562'/>
+  <ch byte='xbf' uni='x00a9'/>
+  <ch byte='xc0' uni='x044e'/>
+  <range byte='xc1' len='2' uni='x0430'/>
+  <ch byte='xc3' uni='x0446'/>
+  <range byte='xc4' len='2' uni='x0434'/>
+  <ch byte='xc6' uni='x0444'/>
+  <ch byte='xc7' uni='x0433'/>
+  <ch byte='xc8' uni='x0445'/>
+  <range byte='xc9' len='8' uni='x0438'/>
+  <ch byte='xd1' uni='x044f'/>
+  <range byte='xd2' len='4' uni='x0440'/>
+  <ch byte='xd6' uni='x0436'/>
+  <ch byte='xd7' uni='x0432'/>
+  <ch byte='xd8' uni='x044c'/>
+  <ch byte='xd9' uni='x044b'/>
+  <ch byte='xda' uni='x0437'/>
+  <ch byte='xdb' uni='x0448'/>
+  <ch byte='xdc' uni='x044d'/>
+  <ch byte='xdd' uni='x0449'/>
+  <ch byte='xde' uni='x0447'/>
+  <ch byte='xdf' uni='x044a'/>
+  <ch byte='xe0' uni='x042e'/>
+  <range byte='xe1' len='2' uni='x0410'/>
+  <ch byte='xe3' uni='x0426'/>
+  <range byte='xe4' len='2' uni='x0414'/>
+  <ch byte='xe6' uni='x0424'/>
+  <ch byte='xe7' uni='x0413'/>
+  <ch byte='xe8' uni='x0425'/>
+  <range byte='xe9' len='8' uni='x0418'/>
+  <ch byte='xf1' uni='x042f'/>
+  <range byte='xf2' len='4' uni='x0420'/>
+  <ch byte='xf6' uni='x0416'/>
+  <ch byte='xf7' uni='x0412'/>
+  <ch byte='xf8' uni='x042c'/>
+  <ch byte='xf9' uni='x042b'/>
+  <ch byte='xfa' uni='x0417'/>
+  <ch byte='xfb' uni='x0428'/>
+  <ch byte='xfc' uni='x042d'/>
+  <ch byte='xfd' uni='x0429'/>
+  <ch byte='xfe' uni='x0427'/>
+  <ch byte='xff' uni='x042a'/>
+</encmap>
diff --git a/Parser/Encodings/update-encodings b/Parser/Encodings/update-encodings
new file mode 100755
index 0000000..cd4948b
--- /dev/null
+++ b/Parser/Encodings/update-encodings
@@ -0,0 +1,25 @@
+#!/bin/sh -efux
+
+baseURL=http://unicode.org/Public/MAPPINGS
+
+UpdateEncoding()
+{
+	local NAME=$1 f=$2 name=
+	name=$(perl -e 'print lc shift' "$NAME")
+	GET $baseURL/$f >${f##*/}
+	make_encmap $NAME ${f##*/} >$name.xml
+	sed -i "1s/>/ expat='yes'>/" $name.xml
+	compile_encoding $name.xml
+}
+
+# iso-8859-1 is expat built-in encoding
+# iso-8859-12 is not available at ftp.unicode.org
+for i in `seq 2 16 |grep -v 12`; do
+	UpdateEncoding ISO-8859-$i ISO8859/8859-$i.TXT
+done
+
+for i in `seq 1250 1258`; do
+	UpdateEncoding windows-$i VENDORS/MICSFT/WINDOWS/CP$i.TXT
+done
+
+UpdateEncoding koi8-r VENDORS/MISC/KOI8-R.TXT
diff --git a/Parser/Encodings/windows-1250.enc b/Parser/Encodings/windows-1250.enc
index d4a64b5..df4f0ea 100644
--- a/Parser/Encodings/windows-1250.enc
+++ b/Parser/Encodings/windows-1250.enc
@@ -1,2 +1,2 @@
 windows-1250	
-
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   &   ! 0` 9Zd}y     "  !"a :[e~zA^{B_=>|T9CGPXnpbU:
DHQYoqc
\ No newline at end of file
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    &   ! 0` 9Zd}y     "  !"a :[e~zA^{B_=>|T9CGPXnpbU:
DHQYoqc
\ No newline at end of file
diff --git a/Parser/Encodings/windows-1250.xml b/Parser/Encodings/windows-1250.xml
new file mode 100644
index 0000000..0394b53
--- /dev/null
+++ b/Parser/Encodings/windows-1250.xml
@@ -0,0 +1,100 @@
+<encmap name='windows-1250' expat='yes'>
+  <ch byte='x80' uni='x20ac'/>
+  <ch byte='x82' uni='x201a'/>
+  <ch byte='x84' uni='x201e'/>
+  <ch byte='x85' uni='x2026'/>
+  <range byte='x86' len='2' uni='x2020'/>
+  <ch byte='x89' uni='x2030'/>
+  <ch byte='x8a' uni='x0160'/>
+  <ch byte='x8b' uni='x2039'/>
+  <ch byte='x8c' uni='x015a'/>
+  <ch byte='x8d' uni='x0164'/>
+  <ch byte='x8e' uni='x017d'/>
+  <ch byte='x8f' uni='x0179'/>
+  <range byte='x91' len='2' uni='x2018'/>
+  <range byte='x93' len='2' uni='x201c'/>
+  <ch byte='x95' uni='x2022'/>
+  <range byte='x96' len='2' uni='x2013'/>
+  <ch byte='x99' uni='x2122'/>
+  <ch byte='x9a' uni='x0161'/>
+  <ch byte='x9b' uni='x203a'/>
+  <ch byte='x9c' uni='x015b'/>
+  <ch byte='x9d' uni='x0165'/>
+  <ch byte='x9e' uni='x017e'/>
+  <ch byte='x9f' uni='x017a'/>
+  <ch byte='xa0' uni='x00a0'/>
+  <ch byte='xa1' uni='x02c7'/>
+  <ch byte='xa2' uni='x02d8'/>
+  <ch byte='xa3' uni='x0141'/>
+  <ch byte='xa4' uni='x00a4'/>
+  <ch byte='xa5' uni='x0104'/>
+  <range byte='xa6' len='4' uni='x00a6'/>
+  <ch byte='xaa' uni='x015e'/>
+  <range byte='xab' len='4' uni='x00ab'/>
+  <ch byte='xaf' uni='x017b'/>
+  <range byte='xb0' len='2' uni='x00b0'/>
+  <ch byte='xb2' uni='x02db'/>
+  <ch byte='xb3' uni='x0142'/>
+  <range byte='xb4' len='5' uni='x00b4'/>
+  <ch byte='xb9' uni='x0105'/>
+  <ch byte='xba' uni='x015f'/>
+  <ch byte='xbb' uni='x00bb'/>
+  <ch byte='xbc' uni='x013d'/>
+  <ch byte='xbd' uni='x02dd'/>
+  <ch byte='xbe' uni='x013e'/>
+  <ch byte='xbf' uni='x017c'/>
+  <ch byte='xc0' uni='x0154'/>
+  <range byte='xc1' len='2' uni='x00c1'/>
+  <ch byte='xc3' uni='x0102'/>
+  <ch byte='xc4' uni='x00c4'/>
+  <ch byte='xc5' uni='x0139'/>
+  <ch byte='xc6' uni='x0106'/>
+  <ch byte='xc7' uni='x00c7'/>
+  <ch byte='xc8' uni='x010c'/>
+  <ch byte='xc9' uni='x00c9'/>
+  <ch byte='xca' uni='x0118'/>
+  <ch byte='xcb' uni='x00cb'/>
+  <ch byte='xcc' uni='x011a'/>
+  <range byte='xcd' len='2' uni='x00cd'/>
+  <ch byte='xcf' uni='x010e'/>
+  <ch byte='xd0' uni='x0110'/>
+  <ch byte='xd1' uni='x0143'/>
+  <ch byte='xd2' uni='x0147'/>
+  <range byte='xd3' len='2' uni='x00d3'/>
+  <ch byte='xd5' uni='x0150'/>
+  <range byte='xd6' len='2' uni='x00d6'/>
+  <ch byte='xd8' uni='x0158'/>
+  <ch byte='xd9' uni='x016e'/>
+  <ch byte='xda' uni='x00da'/>
+  <ch byte='xdb' uni='x0170'/>
+  <range byte='xdc' len='2' uni='x00dc'/>
+  <ch byte='xde' uni='x0162'/>
+  <ch byte='xdf' uni='x00df'/>
+  <ch byte='xe0' uni='x0155'/>
+  <range byte='xe1' len='2' uni='x00e1'/>
+  <ch byte='xe3' uni='x0103'/>
+  <ch byte='xe4' uni='x00e4'/>
+  <ch byte='xe5' uni='x013a'/>
+  <ch byte='xe6' uni='x0107'/>
+  <ch byte='xe7' uni='x00e7'/>
+  <ch byte='xe8' uni='x010d'/>
+  <ch byte='xe9' uni='x00e9'/>
+  <ch byte='xea' uni='x0119'/>
+  <ch byte='xeb' uni='x00eb'/>
+  <ch byte='xec' uni='x011b'/>
+  <range byte='xed' len='2' uni='x00ed'/>
+  <ch byte='xef' uni='x010f'/>
+  <ch byte='xf0' uni='x0111'/>
+  <ch byte='xf1' uni='x0144'/>
+  <ch byte='xf2' uni='x0148'/>
+  <range byte='xf3' len='2' uni='x00f3'/>
+  <ch byte='xf5' uni='x0151'/>
+  <range byte='xf6' len='2' uni='x00f6'/>
+  <ch byte='xf8' uni='x0159'/>
+  <ch byte='xf9' uni='x016f'/>
+  <ch byte='xfa' uni='x00fa'/>
+  <ch byte='xfb' uni='x0171'/>
+  <range byte='xfc' len='2' uni='x00fc'/>
+  <ch byte='xfe' uni='x0163'/>
+  <ch byte='xff' uni='x02d9'/>
+</encmap>
diff --git a/Parser/Encodings/windows-1251.xml b/Parser/Encodings/windows-1251.xml
new file mode 100644
index 0000000..e3ff4f1
--- /dev/null
+++ b/Parser/Encodings/windows-1251.xml
@@ -0,0 +1,54 @@
+<encmap name='windows-1251' expat='yes'>
+  <range byte='x80' len='2' uni='x0402'/>
+  <ch byte='x82' uni='x201a'/>
+  <ch byte='x83' uni='x0453'/>
+  <ch byte='x84' uni='x201e'/>
+  <ch byte='x85' uni='x2026'/>
+  <range byte='x86' len='2' uni='x2020'/>
+  <ch byte='x88' uni='x20ac'/>
+  <ch byte='x89' uni='x2030'/>
+  <ch byte='x8a' uni='x0409'/>
+  <ch byte='x8b' uni='x2039'/>
+  <ch byte='x8c' uni='x040a'/>
+  <ch byte='x8d' uni='x040c'/>
+  <ch byte='x8e' uni='x040b'/>
+  <ch byte='x8f' uni='x040f'/>
+  <ch byte='x90' uni='x0452'/>
+  <range byte='x91' len='2' uni='x2018'/>
+  <range byte='x93' len='2' uni='x201c'/>
+  <ch byte='x95' uni='x2022'/>
+  <range byte='x96' len='2' uni='x2013'/>
+  <ch byte='x99' uni='x2122'/>
+  <ch byte='x9a' uni='x0459'/>
+  <ch byte='x9b' uni='x203a'/>
+  <ch byte='x9c' uni='x045a'/>
+  <ch byte='x9d' uni='x045c'/>
+  <ch byte='x9e' uni='x045b'/>
+  <ch byte='x9f' uni='x045f'/>
+  <ch byte='xa0' uni='x00a0'/>
+  <ch byte='xa1' uni='x040e'/>
+  <ch byte='xa2' uni='x045e'/>
+  <ch byte='xa3' uni='x0408'/>
+  <ch byte='xa4' uni='x00a4'/>
+  <ch byte='xa5' uni='x0490'/>
+  <range byte='xa6' len='2' uni='x00a6'/>
+  <ch byte='xa8' uni='x0401'/>
+  <ch byte='xa9' uni='x00a9'/>
+  <ch byte='xaa' uni='x0404'/>
+  <range byte='xab' len='4' uni='x00ab'/>
+  <ch byte='xaf' uni='x0407'/>
+  <range byte='xb0' len='2' uni='x00b0'/>
+  <ch byte='xb2' uni='x0406'/>
+  <ch byte='xb3' uni='x0456'/>
+  <ch byte='xb4' uni='x0491'/>
+  <range byte='xb5' len='3' uni='x00b5'/>
+  <ch byte='xb8' uni='x0451'/>
+  <ch byte='xb9' uni='x2116'/>
+  <ch byte='xba' uni='x0454'/>
+  <ch byte='xbb' uni='x00bb'/>
+  <ch byte='xbc' uni='x0458'/>
+  <ch byte='xbd' uni='x0405'/>
+  <ch byte='xbe' uni='x0455'/>
+  <ch byte='xbf' uni='x0457'/>
+  <range byte='xc0' len='64' uni='x0410'/>
+</encmap>
diff --git a/Parser/Encodings/windows-1252.xml b/Parser/Encodings/windows-1252.xml
new file mode 100644
index 0000000..7a7f73c
--- /dev/null
+++ b/Parser/Encodings/windows-1252.xml
@@ -0,0 +1,26 @@
+<encmap name='windows-1252' expat='yes'>
+  <ch byte='x80' uni='x20ac'/>
+  <ch byte='x82' uni='x201a'/>
+  <ch byte='x83' uni='x0192'/>
+  <ch byte='x84' uni='x201e'/>
+  <ch byte='x85' uni='x2026'/>
+  <range byte='x86' len='2' uni='x2020'/>
+  <ch byte='x88' uni='x02c6'/>
+  <ch byte='x89' uni='x2030'/>
+  <ch byte='x8a' uni='x0160'/>
+  <ch byte='x8b' uni='x2039'/>
+  <ch byte='x8c' uni='x0152'/>
+  <ch byte='x8e' uni='x017d'/>
+  <range byte='x91' len='2' uni='x2018'/>
+  <range byte='x93' len='2' uni='x201c'/>
+  <ch byte='x95' uni='x2022'/>
+  <range byte='x96' len='2' uni='x2013'/>
+  <ch byte='x98' uni='x02dc'/>
+  <ch byte='x99' uni='x2122'/>
+  <ch byte='x9a' uni='x0161'/>
+  <ch byte='x9b' uni='x203a'/>
+  <ch byte='x9c' uni='x0153'/>
+  <ch byte='x9e' uni='x017e'/>
+  <ch byte='x9f' uni='x0178'/>
+  <range byte='xa0' len='96' uni='x00a0'/>
+</encmap>
diff --git a/Parser/Encodings/windows-1253.enc b/Parser/Encodings/windows-1253.enc
new file mode 100644
index 0000000..0d003ea
--- /dev/null
+++ b/Parser/Encodings/windows-1253.enc
@@ -0,0 +1,2 @@
+windows-1253	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    &   ! 0 9     "  !" : 
\ No newline at end of file
diff --git a/Parser/Encodings/windows-1253.xml b/Parser/Encodings/windows-1253.xml
new file mode 100644
index 0000000..d0b90dd
--- /dev/null
+++ b/Parser/Encodings/windows-1253.xml
@@ -0,0 +1,30 @@
+<encmap name='windows-1253' expat='yes'>
+  <ch byte='x80' uni='x20ac'/>
+  <ch byte='x82' uni='x201a'/>
+  <ch byte='x83' uni='x0192'/>
+  <ch byte='x84' uni='x201e'/>
+  <ch byte='x85' uni='x2026'/>
+  <range byte='x86' len='2' uni='x2020'/>
+  <ch byte='x89' uni='x2030'/>
+  <ch byte='x8b' uni='x2039'/>
+  <range byte='x91' len='2' uni='x2018'/>
+  <range byte='x93' len='2' uni='x201c'/>
+  <ch byte='x95' uni='x2022'/>
+  <range byte='x96' len='2' uni='x2013'/>
+  <ch byte='x99' uni='x2122'/>
+  <ch byte='x9b' uni='x203a'/>
+  <ch byte='xa0' uni='x00a0'/>
+  <range byte='xa1' len='2' uni='x0385'/>
+  <range byte='xa3' len='7' uni='x00a3'/>
+  <range byte='xab' len='4' uni='x00ab'/>
+  <ch byte='xaf' uni='x2015'/>
+  <range byte='xb0' len='4' uni='x00b0'/>
+  <ch byte='xb4' uni='x0384'/>
+  <range byte='xb5' len='3' uni='x00b5'/>
+  <range byte='xb8' len='3' uni='x0388'/>
+  <ch byte='xbb' uni='x00bb'/>
+  <ch byte='xbc' uni='x038c'/>
+  <ch byte='xbd' uni='x00bd'/>
+  <range byte='xbe' len='20' uni='x038e'/>
+  <range byte='xd3' len='44' uni='x03a3'/>
+</encmap>
diff --git a/Parser/Encodings/windows-1254.enc b/Parser/Encodings/windows-1254.enc
new file mode 100644
index 0000000..6ed61af
--- /dev/null
+++ b/Parser/Encodings/windows-1254.enc
@@ -0,0 +1,2 @@
+windows-1254	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    &   ! 0` 9R     "  !"a :Sx0^1_
\ No newline at end of file
diff --git a/Parser/Encodings/windows-1254.xml b/Parser/Encodings/windows-1254.xml
new file mode 100644
index 0000000..f6dd5d9
--- /dev/null
+++ b/Parser/Encodings/windows-1254.xml
@@ -0,0 +1,34 @@
+<encmap name='windows-1254' expat='yes'>
+  <ch byte='x80' uni='x20ac'/>
+  <ch byte='x82' uni='x201a'/>
+  <ch byte='x83' uni='x0192'/>
+  <ch byte='x84' uni='x201e'/>
+  <ch byte='x85' uni='x2026'/>
+  <range byte='x86' len='2' uni='x2020'/>
+  <ch byte='x88' uni='x02c6'/>
+  <ch byte='x89' uni='x2030'/>
+  <ch byte='x8a' uni='x0160'/>
+  <ch byte='x8b' uni='x2039'/>
+  <ch byte='x8c' uni='x0152'/>
+  <range byte='x91' len='2' uni='x2018'/>
+  <range byte='x93' len='2' uni='x201c'/>
+  <ch byte='x95' uni='x2022'/>
+  <range byte='x96' len='2' uni='x2013'/>
+  <ch byte='x98' uni='x02dc'/>
+  <ch byte='x99' uni='x2122'/>
+  <ch byte='x9a' uni='x0161'/>
+  <ch byte='x9b' uni='x203a'/>
+  <ch byte='x9c' uni='x0153'/>
+  <ch byte='x9f' uni='x0178'/>
+  <range byte='xa0' len='48' uni='x00a0'/>
+  <ch byte='xd0' uni='x011e'/>
+  <range byte='xd1' len='12' uni='x00d1'/>
+  <ch byte='xdd' uni='x0130'/>
+  <ch byte='xde' uni='x015e'/>
+  <range byte='xdf' len='17' uni='x00df'/>
+  <ch byte='xf0' uni='x011f'/>
+  <range byte='xf1' len='12' uni='x00f1'/>
+  <ch byte='xfd' uni='x0131'/>
+  <ch byte='xfe' uni='x015f'/>
+  <ch byte='xff' uni='x00ff'/>
+</encmap>
diff --git a/Parser/Encodings/windows-1255.xml b/Parser/Encodings/windows-1255.xml
new file mode 100644
index 0000000..90e3930
--- /dev/null
+++ b/Parser/Encodings/windows-1255.xml
@@ -0,0 +1,30 @@
+<encmap name='windows-1255' expat='yes'>
+  <ch byte='x80' uni='x20ac'/>
+  <ch byte='x82' uni='x201a'/>
+  <ch byte='x83' uni='x0192'/>
+  <ch byte='x84' uni='x201e'/>
+  <ch byte='x85' uni='x2026'/>
+  <range byte='x86' len='2' uni='x2020'/>
+  <ch byte='x88' uni='x02c6'/>
+  <ch byte='x89' uni='x2030'/>
+  <ch byte='x8b' uni='x2039'/>
+  <range byte='x91' len='2' uni='x2018'/>
+  <range byte='x93' len='2' uni='x201c'/>
+  <ch byte='x95' uni='x2022'/>
+  <range byte='x96' len='2' uni='x2013'/>
+  <ch byte='x98' uni='x02dc'/>
+  <ch byte='x99' uni='x2122'/>
+  <ch byte='x9b' uni='x203a'/>
+  <range byte='xa0' len='4' uni='x00a0'/>
+  <ch byte='xa4' uni='x20aa'/>
+  <range byte='xa5' len='5' uni='x00a5'/>
+  <ch byte='xaa' uni='x00d7'/>
+  <range byte='xab' len='15' uni='x00ab'/>
+  <ch byte='xba' uni='x00f7'/>
+  <range byte='xbb' len='5' uni='x00bb'/>
+  <range byte='xc0' len='10' uni='x05b0'/>
+  <range byte='xcb' len='9' uni='x05bb'/>
+  <range byte='xd4' len='5' uni='x05f0'/>
+  <range byte='xe0' len='27' uni='x05d0'/>
+  <range byte='xfd' len='2' uni='x200e'/>
+</encmap>
diff --git a/Parser/Encodings/windows-1256.enc b/Parser/Encodings/windows-1256.enc
new file mode 100644
index 0000000..9b4d57c
--- /dev/null
+++ b/Parser/Encodings/windows-1256.enc
@@ -0,0 +1,2 @@
+windows-1256	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ~   &   ! 0y 9R     "  !" :S  
!"#$%&'()*+,-./0123456789:@ABCDEFGHIJKLMNOPQR  
\ No newline at end of file
diff --git a/Parser/Encodings/windows-1256.xml b/Parser/Encodings/windows-1256.xml
new file mode 100644
index 0000000..7e73022
--- /dev/null
+++ b/Parser/Encodings/windows-1256.xml
@@ -0,0 +1,59 @@
+<encmap name='windows-1256' expat='yes'>
+  <ch byte='x80' uni='x20ac'/>
+  <ch byte='x81' uni='x067e'/>
+  <ch byte='x82' uni='x201a'/>
+  <ch byte='x83' uni='x0192'/>
+  <ch byte='x84' uni='x201e'/>
+  <ch byte='x85' uni='x2026'/>
+  <range byte='x86' len='2' uni='x2020'/>
+  <ch byte='x88' uni='x02c6'/>
+  <ch byte='x89' uni='x2030'/>
+  <ch byte='x8a' uni='x0679'/>
+  <ch byte='x8b' uni='x2039'/>
+  <ch byte='x8c' uni='x0152'/>
+  <ch byte='x8d' uni='x0686'/>
+  <ch byte='x8e' uni='x0698'/>
+  <ch byte='x8f' uni='x0688'/>
+  <ch byte='x90' uni='x06af'/>
+  <range byte='x91' len='2' uni='x2018'/>
+  <range byte='x93' len='2' uni='x201c'/>
+  <ch byte='x95' uni='x2022'/>
+  <range byte='x96' len='2' uni='x2013'/>
+  <ch byte='x98' uni='x06a9'/>
+  <ch byte='x99' uni='x2122'/>
+  <ch byte='x9a' uni='x0691'/>
+  <ch byte='x9b' uni='x203a'/>
+  <ch byte='x9c' uni='x0153'/>
+  <range byte='x9d' len='2' uni='x200c'/>
+  <ch byte='x9f' uni='x06ba'/>
+  <ch byte='xa0' uni='x00a0'/>
+  <ch byte='xa1' uni='x060c'/>
+  <range byte='xa2' len='8' uni='x00a2'/>
+  <ch byte='xaa' uni='x06be'/>
+  <range byte='xab' len='15' uni='x00ab'/>
+  <ch byte='xba' uni='x061b'/>
+  <range byte='xbb' len='4' uni='x00bb'/>
+  <ch byte='xbf' uni='x061f'/>
+  <ch byte='xc0' uni='x06c1'/>
+  <range byte='xc1' len='22' uni='x0621'/>
+  <ch byte='xd7' uni='x00d7'/>
+  <range byte='xd8' len='4' uni='x0637'/>
+  <range byte='xdc' len='4' uni='x0640'/>
+  <ch byte='xe0' uni='x00e0'/>
+  <ch byte='xe1' uni='x0644'/>
+  <ch byte='xe2' uni='x00e2'/>
+  <range byte='xe3' len='4' uni='x0645'/>
+  <range byte='xe7' len='5' uni='x00e7'/>
+  <range byte='xec' len='2' uni='x0649'/>
+  <range byte='xee' len='2' uni='x00ee'/>
+  <range byte='xf0' len='4' uni='x064b'/>
+  <ch byte='xf4' uni='x00f4'/>
+  <range byte='xf5' len='2' uni='x064f'/>
+  <ch byte='xf7' uni='x00f7'/>
+  <ch byte='xf8' uni='x0651'/>
+  <ch byte='xf9' uni='x00f9'/>
+  <ch byte='xfa' uni='x0652'/>
+  <range byte='xfb' len='2' uni='x00fb'/>
+  <range byte='xfd' len='2' uni='x200e'/>
+  <ch byte='xff' uni='x06d2'/>
+</encmap>
diff --git a/Parser/Encodings/windows-1257.enc b/Parser/Encodings/windows-1257.enc
new file mode 100644
index 0000000..9bff023
--- /dev/null
+++ b/Parser/Encodings/windows-1257.enc
@@ -0,0 +1,2 @@
+windows-1257	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    &   ! 0 9     "  !" :VW.y"6*;`CELrAZj{}/
z#7+<aDFMsB[k|~
\ No newline at end of file
diff --git a/Parser/Encodings/windows-1257.xml b/Parser/Encodings/windows-1257.xml
new file mode 100644
index 0000000..e84d871
--- /dev/null
+++ b/Parser/Encodings/windows-1257.xml
@@ -0,0 +1,92 @@
+<encmap name='windows-1257' expat='yes'>
+  <ch byte='x80' uni='x20ac'/>
+  <ch byte='x82' uni='x201a'/>
+  <ch byte='x84' uni='x201e'/>
+  <ch byte='x85' uni='x2026'/>
+  <range byte='x86' len='2' uni='x2020'/>
+  <ch byte='x89' uni='x2030'/>
+  <ch byte='x8b' uni='x2039'/>
+  <ch byte='x8d' uni='x00a8'/>
+  <ch byte='x8e' uni='x02c7'/>
+  <ch byte='x8f' uni='x00b8'/>
+  <range byte='x91' len='2' uni='x2018'/>
+  <range byte='x93' len='2' uni='x201c'/>
+  <ch byte='x95' uni='x2022'/>
+  <range byte='x96' len='2' uni='x2013'/>
+  <ch byte='x99' uni='x2122'/>
+  <ch byte='x9b' uni='x203a'/>
+  <ch byte='x9d' uni='x00af'/>
+  <ch byte='x9e' uni='x02db'/>
+  <ch byte='xa0' uni='x00a0'/>
+  <range byte='xa2' len='3' uni='x00a2'/>
+  <range byte='xa6' len='2' uni='x00a6'/>
+  <ch byte='xa8' uni='x00d8'/>
+  <ch byte='xa9' uni='x00a9'/>
+  <ch byte='xaa' uni='x0156'/>
+  <range byte='xab' len='4' uni='x00ab'/>
+  <ch byte='xaf' uni='x00c6'/>
+  <range byte='xb0' len='8' uni='x00b0'/>
+  <ch byte='xb8' uni='x00f8'/>
+  <ch byte='xb9' uni='x00b9'/>
+  <ch byte='xba' uni='x0157'/>
+  <range byte='xbb' len='4' uni='x00bb'/>
+  <ch byte='xbf' uni='x00e6'/>
+  <ch byte='xc0' uni='x0104'/>
+  <ch byte='xc1' uni='x012e'/>
+  <ch byte='xc2' uni='x0100'/>
+  <ch byte='xc3' uni='x0106'/>
+  <range byte='xc4' len='2' uni='x00c4'/>
+  <ch byte='xc6' uni='x0118'/>
+  <ch byte='xc7' uni='x0112'/>
+  <ch byte='xc8' uni='x010c'/>
+  <ch byte='xc9' uni='x00c9'/>
+  <ch byte='xca' uni='x0179'/>
+  <ch byte='xcb' uni='x0116'/>
+  <ch byte='xcc' uni='x0122'/>
+  <ch byte='xcd' uni='x0136'/>
+  <ch byte='xce' uni='x012a'/>
+  <ch byte='xcf' uni='x013b'/>
+  <ch byte='xd0' uni='x0160'/>
+  <ch byte='xd1' uni='x0143'/>
+  <ch byte='xd2' uni='x0145'/>
+  <ch byte='xd3' uni='x00d3'/>
+  <ch byte='xd4' uni='x014c'/>
+  <range byte='xd5' len='3' uni='x00d5'/>
+  <ch byte='xd8' uni='x0172'/>
+  <ch byte='xd9' uni='x0141'/>
+  <ch byte='xda' uni='x015a'/>
+  <ch byte='xdb' uni='x016a'/>
+  <ch byte='xdc' uni='x00dc'/>
+  <ch byte='xdd' uni='x017b'/>
+  <ch byte='xde' uni='x017d'/>
+  <ch byte='xdf' uni='x00df'/>
+  <ch byte='xe0' uni='x0105'/>
+  <ch byte='xe1' uni='x012f'/>
+  <ch byte='xe2' uni='x0101'/>
+  <ch byte='xe3' uni='x0107'/>
+  <range byte='xe4' len='2' uni='x00e4'/>
+  <ch byte='xe6' uni='x0119'/>
+  <ch byte='xe7' uni='x0113'/>
+  <ch byte='xe8' uni='x010d'/>
+  <ch byte='xe9' uni='x00e9'/>
+  <ch byte='xea' uni='x017a'/>
+  <ch byte='xeb' uni='x0117'/>
+  <ch byte='xec' uni='x0123'/>
+  <ch byte='xed' uni='x0137'/>
+  <ch byte='xee' uni='x012b'/>
+  <ch byte='xef' uni='x013c'/>
+  <ch byte='xf0' uni='x0161'/>
+  <ch byte='xf1' uni='x0144'/>
+  <ch byte='xf2' uni='x0146'/>
+  <ch byte='xf3' uni='x00f3'/>
+  <ch byte='xf4' uni='x014d'/>
+  <range byte='xf5' len='3' uni='x00f5'/>
+  <ch byte='xf8' uni='x0173'/>
+  <ch byte='xf9' uni='x0142'/>
+  <ch byte='xfa' uni='x015b'/>
+  <ch byte='xfb' uni='x016b'/>
+  <ch byte='xfc' uni='x00fc'/>
+  <ch byte='xfd' uni='x017c'/>
+  <ch byte='xfe' uni='x017e'/>
+  <ch byte='xff' uni='x02d9'/>
+</encmap>
diff --git a/Parser/Encodings/windows-1258.enc b/Parser/Encodings/windows-1258.enc
new file mode 100644
index 0000000..c8335fe
--- /dev/null
+++ b/Parser/Encodings/windows-1258.enc
@@ -0,0 +1,2 @@
+windows-1258	
+
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    &   ! 0 9R     "  !" :Sx	# 
\ No newline at end of file
diff --git a/Parser/Encodings/windows-1258.xml b/Parser/Encodings/windows-1258.xml
new file mode 100644
index 0000000..a6d932a
--- /dev/null
+++ b/Parser/Encodings/windows-1258.xml
@@ -0,0 +1,48 @@
+<encmap name='windows-1258' expat='yes'>
+  <ch byte='x80' uni='x20ac'/>
+  <ch byte='x82' uni='x201a'/>
+  <ch byte='x83' uni='x0192'/>
+  <ch byte='x84' uni='x201e'/>
+  <ch byte='x85' uni='x2026'/>
+  <range byte='x86' len='2' uni='x2020'/>
+  <ch byte='x88' uni='x02c6'/>
+  <ch byte='x89' uni='x2030'/>
+  <ch byte='x8b' uni='x2039'/>
+  <ch byte='x8c' uni='x0152'/>
+  <range byte='x91' len='2' uni='x2018'/>
+  <range byte='x93' len='2' uni='x201c'/>
+  <ch byte='x95' uni='x2022'/>
+  <range byte='x96' len='2' uni='x2013'/>
+  <ch byte='x98' uni='x02dc'/>
+  <ch byte='x99' uni='x2122'/>
+  <ch byte='x9b' uni='x203a'/>
+  <ch byte='x9c' uni='x0153'/>
+  <ch byte='x9f' uni='x0178'/>
+  <range byte='xa0' len='35' uni='x00a0'/>
+  <ch byte='xc3' uni='x0102'/>
+  <range byte='xc4' len='8' uni='x00c4'/>
+  <ch byte='xcc' uni='x0300'/>
+  <range byte='xcd' len='3' uni='x00cd'/>
+  <ch byte='xd0' uni='x0110'/>
+  <ch byte='xd1' uni='x00d1'/>
+  <ch byte='xd2' uni='x0309'/>
+  <range byte='xd3' len='2' uni='x00d3'/>
+  <ch byte='xd5' uni='x01a0'/>
+  <range byte='xd6' len='7' uni='x00d6'/>
+  <ch byte='xdd' uni='x01af'/>
+  <ch byte='xde' uni='x0303'/>
+  <range byte='xdf' len='4' uni='x00df'/>
+  <ch byte='xe3' uni='x0103'/>
+  <range byte='xe4' len='8' uni='x00e4'/>
+  <ch byte='xec' uni='x0301'/>
+  <range byte='xed' len='3' uni='x00ed'/>
+  <ch byte='xf0' uni='x0111'/>
+  <ch byte='xf1' uni='x00f1'/>
+  <ch byte='xf2' uni='x0323'/>
+  <range byte='xf3' len='2' uni='x00f3'/>
+  <ch byte='xf5' uni='x01a1'/>
+  <range byte='xf6' len='7' uni='x00f6'/>
+  <ch byte='xfd' uni='x01b0'/>
+  <ch byte='xfe' uni='x20ab'/>
+  <ch byte='xff' uni='x00ff'/>
+</encmap>
diff --git a/perl-XML-Parser.spec b/perl-XML-Parser.spec
new file mode 100644
index 0000000..11edfd8
--- /dev/null
+++ b/perl-XML-Parser.spec
@@ -0,0 +1,146 @@
+%define _unpackaged_files_terminate_build 1
+%define dist XML-Parser
+Name: perl-%dist
+Version: 2.46
+Release: alt1
+
+Summary: Perl module for parsing XML files
+License: GPL or Artistic
+Group: Development/Perl
+
+URL: %CPAN %dist
+Source: %dist-%version.tar
+Patch: %name-%version-%release.patch
+
+# Automatically added by buildreq on Fri Oct 07 2011
+BuildRequires: libexpat-devel perl-devel perl-libwww
+
+%description
+XML::Parser is a Perl module for parsing XML documents.
+It is built on top of XML::Parser::Expat, which is
+a lower level interface to James Clark's expat library.
+
+%prep
+%setup -q -n %dist-%version
+%patch -p1
+cp -av samples examples
+rm examples/REC-xml-19980210.xml
+
+%build
+%perl_vendor_build
+
+# only *.enc files should be installed
+find blib/lib/XML/Parser/Encodings -type f -not -name '*.enc' -print -delete
+
+%install
+%perl_vendor_install
+
+%files
+%doc Changes README
+%perl_vendor_archlib/XML
+%perl_vendor_autolib/XML
+
+%changelog
+* Mon Dec 14 2020 Igor Vlasenko <viy@altlinux.ru> 2.46-alt1
+- new version
+
+* Thu Jan 24 2019 Igor Vlasenko <viy@altlinux.ru> 2.44-alt2.2
+- rebuild with new perl 5.28.1
+
+* Fri Dec 15 2017 Igor Vlasenko <viy@altlinux.ru> 2.44-alt2.1.1
+- rebuild with new perl 5.26.1
+
+* Fri Feb 03 2017 Igor Vlasenko <viy@altlinux.ru> 2.44-alt2.1
+- rebuild with new perl 5.24.1
+
+* Tue Feb 23 2016 Igor Vlasenko <viy@altlinux.ru> 2.44-alt2
+- dropped at@'s patch perl-XML-Parser-2.34-alt-style-subs.patch
+
+* Wed Nov 25 2015 Igor Vlasenko <viy@altlinux.ru> 2.44-alt1.1
+- rebuild with new perl 5.22.0
+
+* Thu Oct 15 2015 Igor Vlasenko <viy@altlinux.ru> 2.44-alt1
+- automated CPAN update
+
+* Mon Dec 22 2014 Igor Vlasenko <viy@altlinux.ru> 2.43-alt1
+- automated CPAN update
+
+* Tue Dec 09 2014 Igor Vlasenko <viy@altlinux.ru> 2.41-alt4.1
+- rebuild with new perl 5.20.1
+
+* Thu Aug 22 2013 Vladimir Lettiev <crux@altlinux.ru> 2.41-alt4
+- built for perl 5.18
+
+* Mon Aug 27 2012 Vladimir Lettiev <crux@altlinux.ru> 2.41-alt3
+- rebuilt for perl-5.16
+
+* Fri Oct 07 2011 Alexey Tourbin <at@altlinux.ru> 2.41-alt2
+- rebuilt for perl-5.14
+
+* Wed Aug 10 2011 Alexey Tourbin <at@altlinux.ru> 2.41-alt1
+- 2.40 -> 2.41
+
+* Sat Dec 18 2010 Alexey Tourbin <at@altlinux.ru> 2.40-alt1
+- 2.36 -> 2.40
+
+* Mon Sep 20 2010 Alexey Tourbin <at@altlinux.ru> 2.36-alt2.1
+- rebuilt for perl-5.12
+
+* Fri Apr 10 2009 Alexey Tourbin <at@altlinux.ru> 2.36-alt2
+- converted ISO-8859-* encoding names to uppercase
+
+* Mon Mar 03 2008 Alexey Tourbin <at@altlinux.ru> 2.36-alt1
+- 2.34 -> 2.36
+- updated iso-8859-* and windows-125x encodings
+
+* Mon Oct 16 2006 Alexey Tourbin <at@altlinux.ru> 2.34-alt6
+- imported sources into git and built with gear
+- patches from Joris van Rantwijk now really applied
+
+* Sat Aug 12 2006 Alexey Tourbin <at@altlinux.ru> 2.34-alt5
+- fix for carsh on utf8 stream (Joris van Rantwijk, cpan #19859, deb #378411)
+- fix for off-by-one buffer overflow (Joris van Rantwijk, cpan #19860)
+
+* Sun Jun 26 2005 Alexey Tourbin <at@altlinux.ru> 2.34-alt4
+- added support for XSLoader (cpan #13420)
+
+* Mon Jun 13 2005 Alexey Tourbin <at@altlinux.ru> 2.34-alt3
+- don't ignore user exceptions when using Style => "Subs" (cpan #13204)
+- removed examples/REC-xml-19980210.xml (156K)
+
+* Thu Mar 10 2005 Alexey Tourbin <at@altlinux.ru> 2.34-alt2
+- ACK NMU: re-added Cyrillic and Hebrew encodings (cpan #11917)
+- updated BuildRequires
+- manual pages not packaged (use perldoc)
+
+* Mon Mar 07 2005 LAKostis <lakostis at altlinux.ru> 2.34-alt1.2
+- add cyrillic encodings from livejournal cvs.
+
+* Sat Feb 19 2005 ALT QA Team Robot <qa-robot@altlinux.org> 2.34-alt1.1
+- Rebuilt with rpm-build-perl-0.5.1.
+
+* Fri Oct 17 2003 Alexey Tourbin <at@altlinux.ru> 2.34-alt1
+- 2.34
+- buildreq applied
+
+* Fri Nov 01 2002 Sergey V Turchin <zerg@altlinux.org> 2.31-alt2
+- rebuild with new perl
+
+* Wed May 29 2002 Mikhail Zabaluev <mhz@altlinux.ru> 2.31-alt1
+- New version
+- Require libexpat, not expat
+
+* Tue Jul 24 2001 Stanislav Ievlev <inger@altlinux.ru> 2.30-alt2
+- Rebuilt with new perl.
+
+* Tue Jul 03 2001 Mikhail Zabaluev <mhz@altlinux.ru> 2.30-alt1
+- 2.30, shared expat is supported
+- ALTified spec
+
+* Thu Jul  6 2000 Mikhail Zabaluev <mookid@sigent.ru> 2.29-2mdk_mhz
+- added documentation files
+- cleaned out files, build
+
+* Tue Jun 13 2000 Vincent Danen <vdanen@linux-mandrake.com> 2.29-1mdk
+- initial specfile
+- bzip sources
 
: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
: Michael Shigorin